linux 伊斯|grep -c'和完整路径

bejyjqdl  于 2023-01-16  发布在  Linux
关注(0)|答案(2)|浏览(170)

我可以使用ls | grep -c /full/path/to/file来计算一个文件的出现次数吗?但是执行命令的目录不是我要查找的文件所在的目录。
假设我想查看“results”目录中有多少个 .txt 文件,当我在另一个目录中时,我可以执行类似ls | grep -c /full/path/to/results/*.txt的操作吗?
虽然我在那个目录下有 .txt 文件,但是当我从另一个目录运行这个命令时,我总是得到一个零:(发生了什么事?我可以只对当前目录使用ls吗?

wgx48brx

wgx48brx1#

您必须使用ls <dirname>。纯 ls 默认仅用于当前目录。
您尝试执行的操作可以通过find <dir> -name "*.txt" | grep -c txtfind <dir> -name "*.txt" | wc -l完成
但是你也可以做ls * | grep \.txt$,请阅读手册,找出不同之处。

unftdfkk

unftdfkk2#

  • grep接受正则表达式,不接受glob。/foo/bar/*.txt是glob。请尝试/foo/bar/.*\.txt
  • 同样ls列出了你当前目录下的文件和目录。它不会列出full path。做一些测试,你会很容易看到它。
  • ls可能会在一行中输出结果,这可能会使您的grep -c给予不正确的结果。

相关问题