Shell
通過管道到“sort”命令對“find -print0”的輸出進行排序
find
在將輸出傳遞給命令之前,我需要能夠按字母順序對輸出進行排序。輸入| sort |
之間不起作用,那我該怎麼辦?find folder1 folder2 -name "*.txt" -print0 | xargs -0 myCommand
像往常一樣使用
find
並用 NUL 分隔你的行。GNUsort
可以使用 -z 開關處理這些問題:find . -print0 | sort -z | xargs -r0 yourcommand
某些版本
sort
有一個-z
選項,允許以空值結尾的記錄。find folder1 folder2 -name "*.txt" -print0 | sort -z | xargs -r0 myCommand
此外,您還可以編寫一個高級腳本來執行此操作:
find folder1 folder2 -name "*.txt" -print0 | python -c 'import sys; sys.stdout.write("\0".join(sorted(sys.stdin.read().split("\0"))))' | xargs -r0 myCommand
添加
-r
選項以xargs
確保myCommand
使用參數呼叫它。