使用zgrep命令我想要包含字符串'23230797'的文件列表(这些是压缩的.gz文件),例如结果文件是:
/var/log/logfile.DC_8_172.17.80.63.log.2014-12-10-01-PDT.gz
/var/log/logfile.DC_1_172.17.80.63.log.2014-12-01-23-IST.gz
/var/log/logfile.DC_5_172.17.80.63.log.2014-12-30-11-PST.gz
注意:'DC_'之后的变量substring(单个数字)。 在我的情况下,我不想用户*或?代替数字,因为我已经知道我想要搜索字符串的文件的数字,我希望我的搜索定位我指定的特定文件。
zgrep -l 23230797 /var/log/logfile.DC_5_172.17.80.63.log.2014-12*
答案 0 :(得分:0)
你可以使用shell glob:
zgrep -l 23230797 /var/log/logfile.DC_[0-9]_172.17.80.63.log.2014-12*
[0-9]
将匹配DC_
之后的任何数字。
要搜索特定文件,请使用:
zgrep -l 23230797 /var/log/logfile.DC_[815]_172.17.80.63.log.2014-12*
编辑:回答评论中提出的问题:
如果图案包含特定的'单个和双位数字,例如
DC_22_
,DC_1_
您可以在BASH中使用extglob
:
shopt -s extglob
zgrep -l 23230797 /var/log/logfile.DC_@(22|1)_*