如何用标签包裹包含字符的字符串?

问题描述 投票:0回答:4

嗨,我是一名 Linux 菜鸟,我想知道如何用标记替换以“/”开头的行。
这是一个例子:

/Foo is awesome

我想得到

<i>Foo is awesome</i>

我将不胜感激任何帮助!

linux awk sed tags video-subtitles
4个回答
1
投票

您可以将 awk 与

substr
一起使用,如下所示:

awk '/^\//{$0 = "<i>" substr($0,2) "</i>"}1' file

当行首有

/
时,附加标签并使用
substr
删除原始行中的斜杠。
1
true
,因此 awk 对每一行执行默认操作,即打印该行。


1
投票
sed '\#^/# {s//<i>/;s#$#</i>#;}' YourFile
# or (with maybe space before)
sed '\#^ */# {s//<i>/;s#$#</i>#;}' YourFile

另一种 sed 方式,这允许在这条线上工作(如果要做其他事情而不是简单地按标签进行操作)


0
投票

您可以尝试以下 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>

0
投票
$ awk 'sub("^/","<i>"){$0 = $0 "</i>"} 1' file
<i>Foo is awesome</i>
© www.soinside.com 2019 - 2024. All rights reserved.