如何缩进grep的输出?

如何缩进grep的输出?

我需要 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

相关内容