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

标签 regex linux string text-processing cat

我最近开始使用 Ubuntu 并学习了很多东西 - 有人可以帮忙吗?

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

Kitchen 
Cookie 
Soup 
Garden 
Flower 
Make-up

我想添加一个标签,在前面添加一个字符串,并向文件中的每一行添加结束标签(即为 pictures.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”,但我没有看到在每行的开头或结尾添加其他字符串或标签(除了上升的数字)的选项。

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

谢谢大家, 莫妮克

最佳答案

以下是使用 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>

关于regex - 在每行的开头和结尾添加字符串和标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21378428/

相关文章:

regex - 在 python 正则表达式的集合中使用 *

c++ - sed/regex - 更新具有范围问题的源文件

linux - 用于小规模研究的免费 Linux 集群构建

C++ 字符串数组切片

java - 从 Java 7 开始,字符串内部池

java - 替换字符串中的字符,Java

regex - 列出所有不以数字开头的文件

mysql - 在将文本导入 MySql 之前对其进行验证和格式化

javascript - JS RegEx 即使应该匹配也不匹配

linux - 查找共享信息的行