0

私がやろうとしているのは、たとえばパターンで始まる複数の行を1行に追加したいということです

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 に答える