【发布时间】:2014-02-11 23:25:04
【问题描述】:
三个文件中的示例数据。
fileOne.txt
YYY >>
yyy one
yyy two
yyy three
<<
ZZZ >>
zzz one
zzz two
zzz three
<<
fileTwo.txt
XXX >>
xxx one
xxx two
xxx three
<<
fileThree.txt
XXX >>
xxx one
xxx two
xxx three
<<
ZZZ >>
zzz one
zzz two
zzz three
<<
我正在使用 awk 输出文件的起始分隔符 (XXX) 和结束分隔符 () 之间的部分。这有效:
awk '/XXX/,/<</' /d/Temp/temp/*.txt
结果
XXX >>
xxx one
xxx two
xxx three
<<
XXX >>
xxx one
xxx two
xxx three
<<
但我也想输出文件名。查找某种作品,但最终打印出所有文件名。
find /d/Temp/temp/ -type f -name "*.txt" -print -exec awk '/XXX/,/<</' {} \;
结果
/d/Temp/temp/fileOne.txt
/d/Temp/temp/fileThree.txt
XXX >>
xxx one
xxx two
xxx three
<<
/d/Temp/temp/fileTwo.txt
XXX >>
xxx one
xxx two
xxx three
<<
如何修改此命令以仅输出匹配的文件名?
【问题讨论】: