我想要对已有 -exec 选项的 find 命令找到的文件执行操作。
find . -type f -exec zgrep -li "4168781103" {} +
输出:
./results/Query_20200501_18_32_00_msisdn_14168781103_detail.csv
./results/Query_20200501_18_32_02_msisdn_14168781103_summary.csv
./results/Query_20200501_18_32_02_msisdn_14168781103_detail.csv
./results/Query_20200501_18_32_04_msisdn_14168781103_summary.csv
./results/Query_20200501_18_32_04_msisdn_14168781103_detail.csv
./results/Query_20200501_18_32_51_msisdn_14168781103_summary.csv
./results/Query_20200501_18_32_51_msisdn_14168781103_detail.csv
./results/Query_20200501_18_36_03_msisdn_14168781103_summary.csv
./2311/2020_05/01/18/2311.TRL_20200501180400114.c.5.3.38.0.trl.gz
./2311/2020_05/01/18/trlindex.db
./2311/2020_05/01/18/2311.TRL_20200501180500115.c.5.3.38.0.trl.gz
./2311/2020_05/01/18/2311.TRL_20200501180600116.c.5.3.38.0.trl.gz
./2311/2020_05/01/18/2311.TRL_20200501180700117.c.5.3.38.0.trl.gz
./2311/2020_05/01/18/2311.TRL_20200501181000118.c.5.3.38.0.trl.gz
./2311/2020_05/01/18/2311.TRL_20200501183000119.c.5.3.38.0.trl.gz
./2311/2020_05/01/18/2311.TRL_20200501183100120.c.5.3.38.0.trl.gz
./2311/2020_05/01/18/2311.TRL_20200501183200121.c.5.3.38.0.trl.gz
./2323/2020_05/01/18/2323.TRL_20200501180400296.4.3.18.0.trl.gz
4168781103
我使用带有选项的 find找到了包含关键字符串的这些文件-exec
,现在我想打印下面找到的所有以文件名结尾的文件的内容.trl.gz
或对这些文件进行搜索......
答案1
如果你只想处理.trl.gz最后的文件,你可以find
首先关注它们:
查找 .-type f-名称“*.trl.gz”-exec zgrep -li “4168781103” {} +
然后,为了进一步处理,您可以通过管道进行处理xargs
。
印刷 :
find . -type f **-name "*.trl.gz"** -exec zgrep -li "4168781103" {} + **| xargs cat ...**
进一步搜索:
find . -type f **-name "*.trl.gz"** -exec zgrep -li "4168781103" {} + **| xargs zgrep ...**
或者在符合 POSIX 标准的 shell 中使用命令替换:
cat $(find . -type f -name "*.trl.gz" -exec zgrep -li "4168781103" {} +)