在文件中的每个单词周围添加管道标志

时间:2015-02-12 18:09:24

标签: awk

我有以下文件:

aaaa
bbbb
aaaabbbb

我希望得到以下产品:

|aaaa|
|bbbb|
|aaaabbbb|

我尝试使用:

for i in aaaa bbbb aaaabbbb
do
awk '{ sub ("${i}", "|"${i}"|", $1 }1' input
done

但我没有得到所需的输出。 任何帮助表示赞赏, 感谢。

2 个答案:

答案 0 :(得分:2)

你可以做到

awk '{print "|"$0"|"}' file

awk '{$0="|"$0"|"}1' file

或正如twalberg指出的那样,您可以使用sed

sed 's/^\|$/|/g' file

使用^替换开始锚$或结束锚|

答案 1 :(得分:1)

使用 sed

sed 's/.*/|&|/g' File

.*将匹配整行。 & =>匹配的模式为.* (entire line)。在匹配的模式周围添加|

对于原地替代:sed -i 's/.*/|&|/g' File