Bash

如何在沒有 xargs 的情況下對從標準輸入獲取的文件進行分類

  • October 30, 2015

為了更好地學習 shell,並且不必總是求助於 xargs,我一直在嘗試發現任何其他方法:

find . -name *.tcl | xargs -I{} cat {}

xargs 讓它感覺很亂,我想知道是否有多種方法可以實現這一點。

編輯:我確實發現另一種解決方案是使用:

find . -name "*.tcl" | cat `cat /dev/stdin`

我不明白為什麼我必須在 cat 將其視為文件而不是字元串之前 cat 文件名….

您還可以在子程序中使用 find 並將輸出提供給 cat :)

cat $(find . -name "*.tcl")

您可以在查找中使用 exec:

find . -name "*.tcl" -exec cat {} \;

-exec和尾隨之間的所有內容都是\;要執行的命令。與 xargs 一樣,您將查找結果替換為 {}。對於找到的每個文件 cat 執行(很像 xargs 如何遍歷通過 STDIN 給出的文件列表。

有些人可能會爭辯說這更有效,因為您沒有使用管道或啟動另一個應用程序。

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