dav*_*dva 4 sed text-processing
我有很多带有名为“评论”的特定标签的文本文件,例如我有一个名为 3dchess.sh 的文件,
我需要更改标签:
Comment=3D chess for X11
Run Code Online (Sandbox Code Playgroud)
到
Comment='<span size="xx-large">3D chess for X11</b>'
Run Code Online (Sandbox Code Playgroud)
脚本是:
#!/bin/sh
Package=3dchess
Popcon=48
Section=universe
Comment=3D chess for X11
Exec=3Dc
Run Code Online (Sandbox Code Playgroud)
我试过这个,但在我的情况下不起作用:
sed -i ':Comment=:s:Comment=:Comment='<span size="xx-large">:g;/Comment=/s/$/</b>'/' $HOME/3dchess.sh
Run Code Online (Sandbox Code Playgroud)
就个人而言,我喜欢允许扩展正则表达式的-r选项,sed因此不需要对括号进行转义:
sed -r "s#(Comment=)(.*)#\1'<span size=\"xx-large\">\2</b>'#" 3dchess.sh
Run Code Online (Sandbox Code Playgroud)
注意,因为要'在替换中使用,所以不能使用sed 's///',需要使用sed "s///"代替。此外,由于您需要将其/作为模式的一部分,您不能将其用作分隔符,因此您需要选择另一个字符。我选择了,#但你可以使用任何你喜欢的东西。正如 Graeme 所说,一旦您确定这可以正常工作,请添加-i开关以使其就地编辑文件。
| 归档时间: |
|
| 查看次数: |
39783 次 |
| 最近记录: |