2014-10-03 52 views

回答

1

你可以用awk與substr這樣的:

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

當有/在該行的開頭添加標籤並使用substr從原始行刪除斜槓。 1true所以awk將爲每行打印行的默認行爲。

+1

作品。謝謝! – eagleeyetom 2014-10-03 11:37:39

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> 
1
sed '\#^/# {s//<i>/;s#$#</i>#;}' YourFile 
# or (with maybe space before) 
sed '\#^ */# {s//<i>/;s#$#</i>#;}' YourFile 

另一個SED方式,這允許在這條線做工精美(如果其他事情做,而不是簡單地按標籤sourround)

0
$ 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

相關問題