我正在使用 awk 对文件进行一些文本处理。例如删除尾随空格。
awk '{gsub(/ +$/, "")} {print $0}' filename
这很好用。但是当我将输出重定向到原始文件时。它变成一个空文件。
temp$ awk '{gsub(/ +$/, "")} {print $0}' abc > abc
temp$ cat abc
temp$
所以我尝试了另一种方法。使用 cat 和管道而不是作为 awk 的输入参数。
temp$ cat abc | awk '{gsub(/ +$/, "")} {print $0}' abc > abc
temp$ cat abc
temp$
还是不行。有没有办法在不涉及中间文件的情况下实现相同的目标?
最佳答案
您可以使用sed -i
,sed
将为您处理
示例:
sed -i 's/[ \t]*$//g' file
关于linux - 在没有临时(中间)文件的情况下处理同一文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27532123/