ls | grep -c和完整路径?

时间:2016-02-03 19:44:41

标签: linux grep ls

在您开始说之前已经回答过这个问题之前,请允许我说我搜索了很多内容并且确实没有感觉到我的问题得到了解答。我没有避免搜索!所以我可能很难理解Linux命令,但我没有避免搜索。 :)现在回答我的问题。

我可以使用ls | grep -c /full/path/to/file来计算文件的出现次数,但是从不同的目录执行命令时,我要查找的文件是什么?让我们说我想查看我的"结果"中有多少txt文件?目录,我可以在另一个目录中执行ls | grep -c /full/path/to/results/*.txt之类的操作吗?

虽然我在该目录中有txt文件,但是当我从另一个目录运行命令时,我总是得到零:(发生了什么?我只能将ls用于当前目录吗?

2 个答案:

答案 0 :(得分:2)

你必须使用ls <dirname>。 Plain ls默认只对当前目录。

您要做的事情可以通过find <dir> -name "*.txt" | grep -c txt来完成 或find <dir> -name "*.txt" | wc -l

但你也可以做ls * | grep \.txt$。请阅读手册以找出差异。

答案 1 :(得分:0)

  • grep接受正则表达式,而不是glob。 <li ng-repeat="item in ::items"> <a href="#"> {{::item | date:'yyyy-MM-dd' }}</a> </li> 是glob,请尝试/foo/bar/*.txt
  • /foo/bar/.*\.txt列出了当前目录下的文件/目录,它不会列出ls做一些测试,你会很容易看到它。
  • full path可能会以单行输出结果,这可能会使您的ls给出不正确的结果。因为grep执行基于行的匹配。