用awk替换两个字符串

时间:2011-04-29 07:31:21

标签: awk gawk

我想将@@替换为^¤¤,并在文件中添加换行符。为此,我编写了下面的代码,但感觉有一个更优雅的解决方案,然后两次调用gawk。谁能告诉我有没有?

cat test.txt | gawk '{ gsub("@@", "^"); print }' | gawk '{ gsub("¤¤", "\r\n"); print }'

2 个答案:

答案 0 :(得分:7)

首先,剥离cat。它除了文件串联之外没用,这是它的目的。你的awk命令将是

awk '{gsub("@@","^");gsub("¤¤","\r\n");print}' file

如果您想在执行上述操作之前删除所有换行符

tr -d '\r\n' <file > temp && mv temp file

答案 1 :(得分:2)

打印前只需调用gsub()两次。

gawk'{gsub(“@@”,“^”); gsub(“¤¤”,“\ r \ n”);打印}'