Ls

wc - 設置終止字元

  • June 17, 2013

我已經做到了這一點:wc --files0-from=FILE讓我們獲得文件列表的字數。此列表中的每個條目都必須以 ASCII NUL 字元結尾。

問題:一種設置終止字元的方法,例如手動 NUL 或其他方式?我在這裡找到了這個[引自info wc輸出]:

… 生成一個帶有 GNU find', using its-print0’ 謂詞的 ASCII NUL 終止文件名列表。

我發現有人說每個文件名都被一個 ASCII NUL 字元終止。這是否適合,比如說 的輸出ls?我知道,不應該 parsels,但是將輸出寫入文件以供wc其他時間讀取會很好。

ls每個文件名都以換行符 ( \n) 而不是 NUL ( \0) 結束(如果其標準輸出不是終端)。

使用 NUL 作為分隔符列出目前目錄中的文件的一種方法是:

find . -maxdepth 1 -print0.

這也將匹配以句點開頭的文件。要忽略它們,請使用:

find . -maxdepth 1 \! -name '.*' -print0

其他方法可能是:

ls | tr '\n' '\0'

或者

printf '%s\0' *

正如@ChrisDown 在他的評論中指出的那樣, 如果您的文件名包含在目前目錄中,則只有find和選項才能正確完成工作。如果這不是你的情況(事實上,我想知道是否真的有人在文件名中使用換行符),這三個是等價的。printf``\n

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