我有幾個需要修改的文本文件。 他們看起來就像是:使用sed或awk從標記中搜索模式並將其插入到下一行
Tag: Brown
Chair
Pencil
Tag: Red
Apple
Shirt
Pant
# <--- some files have one or more (about less than five) blank line(s)
Tag: Black
Wall
我想通過服用後話來格式化「標籤:」作爲變量,插入到下一行,直到它遇到其他「標籤」。 「標籤:」之間的界限可能會有所不同。所以在這裏輸出格式例如:
Brown Chair and Chairs
Brown Pencil and Pencils
Red Apple and Apples
Red Shirt and Shirts
Red Pant and Pants
# <--- blank line(s) retain BLANK(s)
Black Wall and Walls
正如我看看和修改在http://sed.sourceforge.net/一些樣品,但仍然沒有成功。
sed ':loop; $!N; /^Tag:/h; n; /^Tag:/!b next; t loop; :next; x; p; x'
謝謝。
** **更新
由於@jaypal建議,並期待 「精心」 在每一個文本文件,我加入 「空行(S)」 的情況。
因此,如果該文件有'標籤:White'其次是'Mouse',你得到'白色的鼠標和Mouses'?或者有些魔法創造了「白色小鼠」? – 2014-09-23 21:11:43
嗯,我需要在「Tag:」之後的以下行復制單詞的邏輯,以防萬一使用反向引用。 – JoCM 2014-09-23 21:27:22