如何使用某些命令< file.txt > file.txt不删除文件

如何使用某些命令< file.txt > file.txt不删除文件

我之前已经这样做过,期望在适当的位置改变文件,类似的事情$ tr '\t' ',' <file.txt >file.txt,显然重定向会在读取>文件之前截断文件;<

如何就地更改文件而不截断/删除它?

答案1

你不能。重定向>运算符将要创建一个新的空文件作为管道的一部分。似乎这样做的工具(如sed --in-place)正在创建一个新文件,写入它,然后将新文件移动到旧文件的位置:

$ ls -i file; sed --in-place 's/foo/bar/' file; ls -i file
266110 file
262180 file

相关内容