我有一些数据文件的索引文件,基本上采用的格式
索引文件:asdfg.log.1234.2345.index
数据文件:asdfg.log
我们的想法是搜索所有索引文件.如果值XXXX出现在索引文件中,请转到grep其相应的数据文件,并打印出数值为XXXX的数据文件中的行.
到目前为止,我只需在索引文件中搜索值XXXX,例如
find . -name "*.index" | xargs grep "XXXX" // Gives me a list of the index files with XXXX in them
Run Code Online (Sandbox Code Playgroud)
如何使索引文件匹配,然后grep其相应的数据文件?
这能起到作用吗?
find . -name '*.index' |
xargs grep -l "XXXX" |
sed 's/\.log\.*/.log/' |
xargs grep "XXXX"
Run Code Online (Sandbox Code Playgroud)
该find命令来自您的示例。第一个xargs grep仅列出(索引)文件名。将sed文件名映射到数据文件名。然后第二个xargs grep扫描数据文件。
您可能想sort -u在该步骤之后插入一个步骤sed。