2013-05-24 6 views
1

Я хотел бы, чтобы превратить "{something: here}" в "[{something: here}]"Wrap STDIN с символами

Например:

$ echo "{something: here}" | magic_command 
$ [{something: here}] 

Я хочу, чтобы сделать все это как часть Баша один лайнер с помощью STDIN.

Похоже, достаточно просто. Есть идеи? Я рисую пустой :(

ответ

4

Добавить одну пару скобок вокруг все:

echo "{something: here}" | echo "[$(cat)]" 

Окружающая часть каждой линии отдельно:

echo "{something: here}" | awk '{print "[" $0 "]"}' 
+0

Отлично, спасибо! –

+1

@john, я не знал, что могу использовать cat для копирования стандартного ввода в стандартный вывод. Благодарю. – nsd

2

Вы можете попробовать его с СЕПГ:

echo "{something: here}" | sed 's/\(.*\)/[\1]/' 
1

в Баш:

var="{something: here}"; 
printf "[%s]\n" "$var" 
+0

+1 за указание Printf. С printf легче написать читаемый код bash. – mogul

0

Для тех, кто использует узел, есть cmd-wrap Util:

echo <string> | wrap <prefix> <suffix> 

Пример:

cat index.js | wrap ';(function($){' '})();'