gpt4 book ai didi

linux - 如何使用 find 命令和 wc 命令查找目录和所有子目录中所有 .txt 文件的数量?

转载 作者:太空狗 更新时间:2023-10-29 12:11:59 25 4
gpt4 key购买 nike

到目前为止我有这个:

find -name ".txt"

我不太确定如何使用 wc 找出文件的确切数量。使用上述命令时,会显示所有 .txt 文件,但我需要具有 .txt 扩展名的确切数量 文件。请不要建议使用其他命令,因为我想专门使用 findwc。谢谢

最佳答案

尝试:

find . -name '*.txt' | wc -l

wc-l 选项告诉它只返回行数。

改进(需要 GNU find)

如果任何 .txt 文件名包含换行符,上面将给出错误的数字。这将适用于任何文件名:

find . -iname '*.txt' -printf '1\n' | wc -l

-printf '1\n 告诉 find 只为找到的每个文件名打印 1 行。这避免了文件名包含困难字符的问题。

例子

让我们创建两个 .txt 文件,其中一个文件名中有一个换行符:

$ touch dir1/dir2/a.txt $'dir1/dir2/b\nc.txt'

现在,让我们找到查找命令:

$ find . -name '*.txt'
./dir1/dir2/b?c.txt
./dir1/dir2/a.txt

统计文件数:

$ find . -name '*.txt' | wc -l
3

如您所见,答案相差一个。然而,改进后的版本可以正常工作:

$ find . -iname '*.txt' -printf '1\n' | wc -l
2

关于linux - 如何使用 find 命令和 wc 命令查找目录和所有子目录中所有 .txt 文件的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40295297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com