如何在 grep 中选择特定文件

如何在 grep 中选择特定文件

所以。我必须在目录中 grep 一个字符串,其中包含同名的文件(几个小时除外):

IE

  • 文件名_01_WORD-1.log
  • 文件名_02_WORD-1.log
  • 文件名_03_WORD-1.log
  • 文件名_04_WORD-1.log
  • 文件名_05_WORD-1.log
  • ...
  • 文件名_23_WORD-1.log
  • 文件名_24_WORD-1.log

我正在尝试在 18 到 23 小时之间的几个小时的文件中 grep 单个单词“ABC”。

我尝试过,grep 'ABC' filename_[18-19-20-21-22-23]*WORD*.log但它在 05 到 23 的文件上扩展为 grep,我不知道为什么。

我怎样才能实现这个目标?

答案1

使用大括号扩展代替:

grep ABC filename_{18,19,20,21,22,23}_WORD*.log

或者更紧凑

grep ABC filename_{18..23}_WORD*.log

您编写它的方式告诉 shell 考虑以 开头filename_,后跟与集合之一匹配的单个字符18to 1(不匹配任何内容),9to 2(同样),0to 2, 1to 2, 2to23(所以最后是01或),后跟任何字符,然后是等。23WORD

相关内容