Ls
wc - 設置終止字元
我已經做到了這一點:
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