我很难完成我的脚本,因为这部分没有按照我想要的方式运行。
我的脚本中有这一行:
cat /home/tmp/temp1.txt | awk '{gsub("~",RS);gsub("*",RS);print}' > /home/tmp/temp.txt
它工作正常,是的。 但是当我做这样的事情时:
cat /home/tmp/temp1.txt | awk '{gsub("|",RS);print}' > /home/tmp/temp.txt
它根本不起作用。 我想将所有竖线更改为新线,但我无法实现。请在这件事上给予我帮助。谢谢
最佳答案
您可以像这样在一个 awk 中完成所有替换:
awk '{gsub(/[*~|]/, RS)} 1' /home/tmp/temp1.txt
管道用于需要转义的正则表达式替换。然而,在字符类 [...]
中,管道或星号不需要像上面那样进行转义。
最好在 gsub
函数中使用 /.../
正则表达式文字而不是带引号的字符串。
关于bash - 在 Bash 中替换垂直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32369035/