Awk 使用grep仅获取每个文件中的第一个匹配项
我有一堆输出文件,标签为Awk 使用grep仅获取每个文件中的第一个匹配项,awk,grep,Awk,Grep,我有一堆输出文件,标签为file1.out,file2.out,file3.out,…,fileN.out 所有这些文件中都有一个名为“keystring”的字符串的多个实例。然而,只有“keystring”的第一个实例对我有意义。其他行不是必需的 当我这样做的时候 grep'keystring'*.out 我访问所有文件,它们输出keystring的每个实例 当我执行grep-m1'keystring'*.out时,我仅在file1.out具有keystring时获取实例 我想提取所有这些输出
file1.out
,file2.out
,file3.out
,…,fileN.out
所有这些文件中都有一个名为“keystring”的字符串的多个实例。然而,只有“keystring”的第一个实例对我有意义。其他行不是必需的
当我这样做的时候
grep'keystring'*.out
我访问所有文件,它们输出keystring
的每个实例
当我执行grep-m1'keystring'*.out
时,我仅在file1.out
具有keystring时获取实例
我想提取所有这些输出文件中最早出现keystring的行。我如何才能做到这一点?您可以使用
awk
:
awk '/keystring/ {print FILENAME ":", $0; nextfile}' *.out
nextfile
将在打印当前文件的第一个匹配项后立即移动到下一个文件。使用find-exec
如下所示:
find-名称'*.out'-exec grep-m1'键串'{}\代码>
另请参见: