我有一個非常大的輸入設置,看起來像這樣的文字:轉化與「sed的」或「的awk」
Label: foo, Other text: text description...
<insert label> Item: item description...
<insert label> Item: item description...
Label: bar, Other text:...
<insert label> Item:...
Label: baz, Other text:...
<insert label> Item:...
<insert label> Item:...
<insert label> Item:...
...
我想改變這個拉出標籤名稱(例如"foo"
)並用實際標籤替換以下行上的標籤"<insert label>"
。
Label: foo, Other text: text description...
foo Item: item description...
foo Item: item description...
Label: bar, Other text:...
bar Item:...
Label: baz, Other text:...
baz Item:...
baz Item:...
baz Item:...
...
這可以用sed或awk或其他unix工具來完成嗎?如果是這樣,我該怎麼做?
出現錯誤:'sed:2:script.sed:invalid command code I''。我使用不同版本的'sed'嗎? – Manish 2012-03-07 22:32:21
@Manish:是的。忽略匹配字符串的情況是GNU擴展。已經修改程序以匹配(包括大小寫)確切的單詞。 – Birei 2012-03-07 22:34:10
現在可以使用,但如果文件中沒有「」行,則不適用。我已將最後一行更改爲'/ <插入標籤> /!s/\ n。* //; s/<插入標籤> \(。* \)\ n \(。* \)$/\ 2 \ 1 /'來處理。 (另外,讓我們特別匹配「<插入標籤>」,文件中可能會有其他這樣的「標籤」。) –
Manish
2012-03-07 23:19:23