今天的 Hacker News Daily 上面看到「Moreutils: A collection of Unix tools that nobody thought to write long ago (joeyh.name)」這則,講 moreutils 這套工具。
翻了一下之前在「當程式沒問題時就會吃掉輸出的 chronic」這邊有提過 chronic 了,原文的討論裡面也提到了其他工具的用法,像是 sponge 可以在 pipe stdin 都收完後才開檔案寫入,可以避免 shell 直接先把檔案幹掉的問題:
awk '{do_stuff()}' myfile.txt | sort -u | column --table > myfile.txt
在這個例子裡面因為 myfile.txt
先被 shell 清空幹掉了,awk 就讀不到東西,這時候可以用 sponge 接,等到 pipe stdin 都收完後才寫檔案:
awk '{do_stuff()}' myfile.txt | sort -u | column --table | sponge myfile.txt
另外是 vipe,可以在先將程式輸出的結果丟進 $EDITOR
裡面,然後再往後丟,像是:
git branch | vipe | xargs git branch -D
還有其他的工具可以用,我自己是把 moreutils 當標配在裝了...