我需要 grep 的输出用制表符/空格缩进。
这是简单的、未缩进的版本: MyCmd | grep "id:"
我尝试了这个但没有成功:MyCmd | grep "id:" | echo " "
答案1
awk
如果grep
可以接受,您可以这样做:
MyCmd | awk '/id:/ {print " " $0}'
或者如果您需要 grep,sed
可以帮助:
MyCmd | grep "id:" | sed -e 's/^/ /'
该awk
版本对包含“id:”的行进行自己的模式匹配,然后打印该行之前的空格。该sed
版本执行的grep
操作与您已经执行的操作相同,但随后用空格替换每行的开头(正则表达式^
匹配行的开头)
答案2
使用 justsed
代替:
MyCmd | sed 's/^.*id:/\t&/'
将匹配id:
并在匹配行的开头引入一个制表符。
例子:
% sed 's/^foo/\t&/' <<<'foobar'
foobar