在linux的每行文本上添加balise [img][/img]的脚本?

在linux的每行文本上添加balise [img][/img]的脚本?

我刚刚得到一个将图像文件上传到网络托管服务商的脚本;最后,我得到了一个包含所有链接的文件(每行一个链接),我想[img]在每个链接的开头和[/img]末尾添加。

答案1

如果您只想添加[img]到文件中每一行的开头和[/img]末尾,您可以awk这样做:

awk '{ print "[img]" $0 "[/img]" }' infile >outfile

或者,

awk '{ printf("[img]%s[/img]\n", $0) }' infile >outfile

答案2

一种方法是使用流编辑器 sed:

sed -e 's/^/[img]/' -e 's!$![/img]!' < input > output

在这里,我将第二次搜索和替换的分隔符从 更改为 ,/以便!替换文本中的正斜杠不需要转义。 GNU sed 将允许使用以下选项进行就地编辑-i

sed -i -e 's/^/[img]/' -e 's!$![/img]!' input

或者,您可以使用以下命令就地编辑文件ed

ed -s input <<< $'1,$s/^/[img]/\n1,$s!$![/img]!\nw\nq'

相关内容