我想在一个文件中将@@
替换为^
,将¤¤
替换为换行符。为了做到这一点,我写了下面的代码,但感觉调用gawk两次并不够优雅。有没有人能告诉我是否有更优雅的解决方案?
cat test.txt | gawk '{ gsub("@@", "^"); print }' | gawk '{ gsub("¤¤", "\r\n"); print }'
首先,去掉cat
。除了文件串联,它毫无用处,而文件串联正是它的作用。你的awk
命令应该是:
awk '{gsub("@@","^");gsub("¤¤","\r\n");print}' file
如果您想在执行上述操作之前删除所有换行符
tr -d '\r\n' <file > temp && mv temp file
只需在打印之前两次调用gsub()。
gawk '{ gsub("@@", "^"); gsub("¤¤", "\r\n"); print }'