erc*_*rch 0 ls options utilities 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'
Run Code Online (Sandbox Code Playgroud)
或者
printf '%s\0' *
Run Code Online (Sandbox Code Playgroud)
正如@ChrisDown 在他的评论中所指出的, 如果您的文件名包含在当前目录中,则只有find
和printf
选项才能正确完成工作\n
。如果这不是你的情况(事实上,我想知道是否真的有人在文件名中使用换行符),这三个是等价的。