Pipe

將輸出重定向回文件

  • March 24, 2022

我發出了以下命令,認為它會獲取 的內容foo.txt,對其進行處理,然後將其寫回原始文件。相反,當我打開文件時,它是空的。

cat foo.txt | tr " " "\n" > foo.txt

這一行到底發生了什麼,我該如何改寫它以將輸出重定向回foo.txt

重定向 ( >foo.txt) 在命令執行之前由父 shell 完成cat,將文件重置為 0 字節。使用類似的東西

tr " " "\n" foo.txt >foo.new && \
 mv foo.new foo.txt

還要避免無用的使用cat.

引用自:https://unix.stackexchange.com/questions/696698