2017-05-02 173 views
-3

一直在尋找很多sed和awk代碼示例,但仍無法弄清我的問題。獲取各種語法問題。Bash:在文本文件中插入字符串後的特殊字符文本

我得到了下面的文本文件(注意整個事情實際上是對1個單行):

<item><title>myTitle1</title><link>myLink1</link></item><item><title>myTitle2</title><link>myLink2</link></item> etc... 

我需要插入:<tag>myTag</tag> 每個</link>後。

最終結果應該是:

<item><title>myTitle1</title><link>myLink1</link><tag>myTag</tag></item><item><title>myTitle2</title><link>myLink2</link><tag>myTag</tag></item> etc... 

任何SED/AWK大師那裏= P

+0

請張貼代碼你試過 –

+0

我試過了: 'awk'/ <\/link>/{print;打印「 myTag」; next} 1'textfile.txt' 但只是在文件末尾輸入它。 我也試圖與SED: 'sed的 '/ <\/link>/A myTag <\/tag>' textfile.txt' ,得到了相同的結果AWK。 我在這裏肯定做錯了xD – Weekender

回答

0

也許不是最漂亮的方式,但在這裏工作:

sed -i 's/<\/link>/<\/link><tag>myTag<\/tag>/g' example.xml 
  • -i看臺替代文件而不是輸出
  • 的patters 's/a/b/g'搜索(S)爲ab,其中g代表全球範圍內爲所有出場,不只是一次
  • /必須要逃到\/

也取代謹防想太多的正則表達式XML,就是會打硬

+0

你是該死的天才! 感謝人:) – Weekender

0

使用AWK你:

$ awk '{gsub(/<\/link>/,"&<tag>myTag</tag>")}1' file 
<item><title>myTitle1</title><link>myLink1</link><tag>myTag</tag></item><item><title>myTitle2</title><link>myLink2</link><tag>myTag</tag></item> etc... 
相關問題