在每行的开头和结尾添加字符串和标签

时间:2014-01-27 10:29:16

标签: regex linux string text-processing cat

我最近开始使用Ubuntu并追上很多东西 - 有人可以帮助一点点。

我有一个300行文件(pictures.txt):

Kitchen 
Cookie 
Soup 
Garden 
Flower 
Make-up

我想添加一个标签,在文件中添加一个字符串并添加结束标签(即picture.txt文件中的每个条目),所以我得到这样的结果:

<m>
<img id="1"> Kitchen <img> 
</m>
<m>
<img id="2"> Cookie <img> 
</m>
<m>
<img id="3"> Soup <img> 
</m>
<m>
<img id="4"> Garden <img> 
</m>
<m>
<img id="5"> Flower <img>  
</m>
<m>
<img id="6"> Make-up <img> 
</m>

到目前为止,我尝试了“cat -n pictures.txt”,但我认为没有选择在每行的开头或结尾添加额外的字符串或标签(除了上升的数字)。

我希望这个问题不是太愚蠢。

谢谢大家, 莫妮克

1 个答案:

答案 0 :(得分:0)

以下是使用GNU sed的方法:

cat -n pictures.txt | sed 's: *\([0-9]*\)\t\(.*\):<m>\n<img id="\1"> \2 </img>\n</m>:'

输出:

<m>
<img id="1"> Kitchen  </img>
</m>
<m>
<img id="2"> Cookie  </img>
</m>
<m>
<img id="3"> Soup  </img>
</m>
<m>
<img id="4"> Garden  </img>
</m>
<m>
<img id="5"> Flower  </img>
</m>
<m>
<img id="6"> Make-up </img>
</m>