Text-Processing
如何查找文本,將其複制並插入文件的下一行?
我正在嘗試編寫一個處理 .xml 文件的腳本。它必須找到包含一個
<title>
元素的所有行,複製它,然後在找到的行之後粘貼到下一行,而且還要更改元素類型。這是一個例子。原來的:
一些文本
<title>
文本 1</title>
一些文本
<title>
文本 2</title>
一些文本
這就是我需要得到的:
一些文本
<title>
文本 1</title>
<description>
文本 1</description>
一些文本
<title>
文本 2</title>
<description>
文本 2</description>
一些文本
可以用 sed 或 grep (或其他工具)來完成嗎?
sed -E 's%<title>(.*)</title>%<title>\1</title>\n<desc>\1</desc>%g' file.xml
應該做你的功課。進一步解釋一下:
-E
參數告訴sed
使用擴展正則表達式,因此您可以使用引用。用 sed 替換通常以s/search/replace/g
. 由於搜尋文本中有斜杠,我們使用%
而不是/
for sed 來標記部分,因此我們不必用反斜杠掩蓋搜尋文本中的斜杠。其餘的是正常的正則表達式,\1
在替換部分引用(…)
了搜尋部分中的片段。