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

Regex 在每行的开头和结尾添加字符串和标记,regex,linux,string,text-processing,cat,Regex,Linux,String,Text Processing,Cat,我最近开始使用Ubuntu,并学习了很多东西——有人能帮我一点忙吗 我有一个300行的文件(pictures.txt),如下所示: Kitchen Cookie Soup Garden Flower Make-up <m> <img id="1"> Kitchen <img> </m> <m> <img id="2"> Cookie <img> </m> <m> <i

我最近开始使用Ubuntu,并学习了很多东西——有人能帮我一点忙吗

我有一个300行的文件(pictures.txt),如下所示:

Kitchen 
Cookie 
Soup 
Garden 
Flower 
Make-up
<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>
我想添加一个标记,预加一个字符串,并将结束标记添加到文件中的每一行(即pictures.txt文件中的每个条目),因此我得到如下结果:

Kitchen 
Cookie 
Soup 
Garden 
Flower 
Make-up
<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”,但我看不到在每行的开头或结尾添加额外字符串或标记(除了递增的数字)的选项

我希望这个问题不要太愚蠢

谢谢大家,
Monique

以下是您如何使用GNU-sed实现此功能:

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

<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>

厨房
曲奇
汤
花园
花
化妆品

这个问题并不愚蠢,但并没有说明您为解决这个问题所做的任何努力。我可能会编写一个简单的c代码来完成这个任务。无论何时获得“\n”字符,都可以添加所需的文本。希望能有帮助