我想要做的是我想将多行以一个模式开头添加到单行中,例如
test.txt包含
name: test1
role: manager
mail: test1@mail.com
name:test2
role: analyst
name:test3
我想grep
从“名字”开始,以“名字”结尾,但并非所有“名字”都以“邮件”结尾,有些则没有“邮件”
期望的输出:
name: test1 role: manager mail: test1@mail.com
name:test2 role: analyst
name:test3
答案 0 :(得分:0)
正确的工具是awk
。我不确定是否可以使用grep
awk '{printf (/^name/?RS:FS)"%s",$0}' test.txt
name: test1 role: manager mail: test1@mail.com
name:test2 role: analyst
name:test3
gnu awk
版本(由于记录分隔符中的多个字符)
awk 'NF{$1=$1;print RS,$0}' RS="name:" test.txt
name: test1 role: manager mail: test1@mail.com
name: test2 role: analyst
name: test3