我有一个文件名 test.sh,我想同时用它们的实际换行符和制表符替换每个 \n
和 \t
转义字符。
猫测试.sh
Maria\nJimenez
Jose\tBaez
Lindo\nGarcia
Luis\tOvalle
Placido\nRuiz
结果输出应该是这样的:
Maria
Jimenez
Jose Baez
Lindo
Garcia
Luis Ovalle
Placido
Ruiz
我尝试了以下命令:
awk '{gsub(/\\n/,"\n")}1' | awk '{gsub(/\\t/,"\t")}1' test.sh
但它不会同时替换两者。我可以只用一个命令来完成这项任务吗?
解决方案是否涉及使用 sed、perl、tr 或任何其他方法都无关紧要。
最佳答案
sed -i -e 's|\\n|\n|g' -e 's|\\t|\t|g' test.sh
sed可以在一个命令中执行多个脚本
s # substitute
| # open capture block
\\n # match literal '\n' instead of the newline character
| # close capture block, open replacement block
\n # replace with newline character
| # close replacement block
g # match multiple times per line
-i
就地编辑文件
-e
标记要执行的脚本
关于regex - 如何用一个命令分别用新行和制表符替换\n 和\t?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42585706/