所以。我必须在目录中 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_
,后跟与集合之一匹配的单个字符1
,8
to 1
(不匹配任何内容),9
to 2
(同样),0
to 2
, 1
to 2
, 2
to2
或3
(所以最后是0
、1
或),后跟任何字符,然后是等。2
3
WORD