在linux中的子目录中使用.txt搜索文件结尾

时间:2014-01-12 22:14:05

标签: linux command-line glob

我想要做的是搜索在子目录中以.txt结尾的所有文件,例如,我在名为 user 的目录中,该目录仅包含目录 Test1 Test2 Test1 包含t1.txt和另一个子目录 Test3 Test2 包含t2.txt。 Test3 包含t3.txt

我尝试使用find和egrep

find */ -name "*.txt" | egrep "*/[^/]*(.txt)$"

但它给了我

Test1/Test3/t3.txt
Test1/t1.txt
Test2/t2.txt

我想打印像

这样的东西
Test1/t1.txt
Test2/t2.txt

因为我只希望文件以子目录中的.txt结尾(不是子目录的子目录) 为了得到我想要的结果,我该怎么做?提前致谢

3 个答案:

答案 0 :(得分:2)

来自man find

   -maxdepth levels
      Descend at most levels (a non-negative integer) levels of direc-
      tories below the command line arguments.   '-maxdepth  0'  means
      only  apply the tests and actions to the command line arguments.

答案 1 :(得分:0)

我相信你想要

 find -mindepth 2 -maxdepth 2 -name "*.txt"

答案 2 :(得分:-1)

您可以使用awkbasenamedirname

  awk -F/ '{print $(NF-1)}'