嗨,我是Linux noob,我會知道如何用標記替換以「/」開頭的行。
下面是一個例子:如何使用標籤包裝字符的字符串?
/Foo is awesome
,我想獲得
<i>Foo is awesome</i>
我希望得到任何幫助!
嗨,我是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>
所以'sub'的返回值表示模式是否匹配? – 2014-10-04 01:04:54
是的。 sub()和gsub()的返回值是regexp匹配的次數,sub()只能是1或0。 – 2014-10-04 01:28:40
作品。謝謝! – eagleeyetom 2014-10-03 11:37:39