嗨,我是一名 Linux 菜鸟,我想知道如何用标记替换以“/”开头的行。
这是一个例子:
/Foo is awesome
我想得到
<i>Foo is awesome</i>
我将不胜感激任何帮助!
您可以将 awk 与
substr
一起使用,如下所示:
awk '/^\//{$0 = "<i>" substr($0,2) "</i>"}1' file
当行首有
/
时,附加标签并使用 substr
删除原始行中的斜杠。 1
是 true
,因此 awk 对每一行执行默认操作,即打印该行。
sed '\#^/# {s//<i>/;s#$#</i>#;}' YourFile
# or (with maybe space before)
sed '\#^ */# {s//<i>/;s#$#</i>#;}' YourFile
另一种 sed 方式,这允许在这条线上工作(如果要做其他事情而不是简单地按标签进行操作)
您可以尝试以下 sed 命令,
$ sed 's~^/\(.*\)~<i>\1</i>~' file
<i>Foo is awesome</i>
通过awk,
$ awk '/^\//{sub(/^\//,"<i>");sub(/$/,"</i>")}1' file
<i>Foo is awesome</i>
$ awk 'sub("^/","<i>"){$0 = $0 "</i>"} 1' file
<i>Foo is awesome</i>