wc - 设置终止字符

wc - 设置终止字符

我已经做到了这一点:wc --files0-from=FILE让我们获取文件列表的字数。此列表中的每个条目都必须以 ASCII NUL 字符结尾。

问题:一种设置终止字符的方法,例如手动设置NUL,或者其他什么?我在这里找到了这个[引用自输出info wc]:

find', using its... 使用 GNU -print0' 谓词生成 ASCII NUL 终止文件名列表。

我发现有人说每个文件名都以 ASCII NUL 字符结尾。比如说 的输出,这是否适合ls?我知道,不应该解析ls,但是将输出写入文件以供wc下次读取会很好。

答案1

ls每个文件名以换行符 ( \n) 结尾,而不是 NUL ( \0) (如果其标准输出不是终端)。

使用 NUL 作为分隔符列出当前目录中的文件的方法是:

find . -maxdepth 1 -print0

这也将匹配以句点开头的文件。要忽略它们,请使用:

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

其他方式可能是:

ls | tr '\n' '\0'

或者

printf '%s\0' *

正如 @ChrisDown 在他的评论中指出的,如果当前目录中包含文件名,则只有findprintf 选项才能正确完成工作。\n如果这不是你的情况(事实上,我想知道是否真的有人在文件名中使用换行符),那么这三个是等效的。

相关内容