如何使用标签包装字符的字符串?
问题描述:
嗨,我是Linux noob,我会知道如何用标记替换以“/”开头的行。
下面是一个例子:如何使用标签包装字符的字符串?
/Foo is awesome
,我想获得
<i>Foo is awesome</i>
我希望得到任何帮助!
答
你可以用awk与substr
这样的:
awk '/^\//{$0 = "<i>" substr($0,2) "</i>"}1' file
当有/
在该行的开头添加标签并使用substr
从原始行删除斜杠。 1
是true
所以awk将为每行打印行的默认行为。
答
你可以试试下面的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>
答
sed '\#^/# {s//<i>/;s#$#</i>#;}' YourFile
# or (with maybe space before)
sed '\#^ */# {s//<i>/;s#$#</i>#;}' YourFile
另一个SED方式,这允许在这条线做工精美(如果其他事情做,而不是简单地按标签sourround)
答
$ awk 'sub("^/","<i>"){$0 = $0 "</i>"} 1' file
<i>Foo is awesome</i>
+0
所以'sub'的返回值表示模式是否匹配? – 2014-10-04 01:04:54
+1
是的。 sub()和gsub()的返回值是regexp匹配的次数,sub()只能是1或0。 – 2014-10-04 01:28:40
作品。谢谢! – eagleeyetom 2014-10-03 11:37:39