0

我想要做的是我想将多行以模式开头添加到单行中

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 
4

1 回答 1

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
于 2013-11-04T06:48:08.797 回答