Xargs

如果 xargs 在沒有任何參數的情況下使用,它會做什麼?

  • March 23, 2015
[user@notebook ~] echo -e '1\n2\n3\n4'
1
2
3
4
[user@notebook ~] echo -e '1\n2\n3\n4' | xargs
1 2 3 4
[user@notebook ~] 

**我的問題:**如果 xargs 不帶參數使用,那麼它會刪除換行符嗎?

引用手冊頁:

xargs從標準輸入讀取項目,由空格(可以用雙引號或單引號或反斜杠保護)或換行符分隔,並執行命令(預設為/bin/echo)一次或多次,任何初始參數後跟從標準輸入。標準輸入上的空行被忽略。

因為 Unix 文件名可以包含空格和換行符,所以這種預設行為通常是有問題的;包含空格和/或換行符的文件名被xargs. 在這些情況下,最好使用該-0選項,以防止此類問題。使用此選項時,您需要確保生成輸入的程序xargs也使用空字元作為分隔符。find例如,如果該程序是 GNU ,則該-print0 選項會為您執行此操作。

沒有參數xargs預設回顯傳遞給它的參數。

從手冊頁

本手冊頁記錄了 xargs 的 GNU 版本。xargs 從標準輸入讀取項目,由空格(可以用雙引號或單引號或反斜杠保護)或換行符分隔,並執行命令(預設為/bin/echo)一次或多次,任何初始參數後跟從標準輸入。標準輸入上的空行被忽略。

請注意有關“…預設為/bin/echo…”的內容。

刪除換行符?

這就是某種目的xargs。它需要一個參數列表,通常由空格和換行符分隔(可以由其他分隔符分隔),並將它們重新打包為單個參數,優化參數以使其適合 ARG_MAX 的空間值。

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