Xargs

“尾隨空格導致輸入行在下一個輸入行邏輯上繼續”是什麼意思?

  • June 7, 2018

從手冊xargs

-L max-lines 

每個命令行最多使用 max-lines 非空白輸入行。**尾隨空白導致輸入行在下一個輸入行邏輯上繼續。**暗示-x。

“尾隨空格導致輸入行在下一個輸入行邏輯上繼續”是什麼意思?你能通過一些例子來展示它嗎?謝謝。

源自https://unix.stackexchange.com/a/448294/674

手冊的意思是,輸入行末尾的尾隨空格將導致xargs將其視為下一行的一部分 - 有效地轉義換行符。考慮以下命令執行:

user@host~:$ (echo "line1"; echo "line2") | xargs -L 1 echo
line1
line2

因為有-L 1選項,每一行輸入都是分開處理的,所以我們得到兩行輸出。現在將其與以下範例進行比較,其中輸入的第一行包含一個尾隨空格:

user@host~:$ (echo "line1 "; echo "line2") | xargs -L 1 echo
line1 line2

請注意,這兩行被視為單行輸入xargs


還值得注意的是(根據評論)該-L max-lines選項是 XSI 擴展(參見Open Group 網站上xargs手冊頁)。這也稱為 X/Open 系統介面擴展 -單一 UNIX 規範 (SUS)的補充規範。

有關 POSIX、SUS 和 XSI 之間差異的更多資訊,請參閱以下文章:

或者查閱Open Group Base SpecificationsBase Definitions Volume中的一致性部分

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