我在同一文件夹下有很多文件:
uut01_010203030.txt
uut02_020038300.txt
uut03_202002003.txt
我可以单独grep最后一次出现的情况:
tac uut01_*.txt | grep -m 1 'some_pattern'
我可以提供文件以grep文件中首次出现的模式:
ls uut*.txt | xargs grep -m 1 'some_pattern'
但是,我不能真正将tac和grep结合在一起,以下命令给我错误:
ls uut*.txt | xargs tac | grep -m 1 'some_pattern'
xargs: tac: terminated by signal 13
该如何解决?
答案 0 :(得分:0)
$ tail -n +1 file*
==> file1 <==
1
2
3
==> file2 <==
1
2
3
4
5
==> file3 <==
1
2
3
4
$ grep -H '.' file* | tac | awk -F':' '!seen[$1]++'
file3:4
file2:5
file1:3
$ awk '/./{hits[FILENAME]=$0} END{for (f in hits) print f, hits[f]}' file*
file1 3
file2 5
file3 4
答案 1 :(得分:-1)
是的,我喜欢以下命令效果很好:
for f in $(find . -name "uut*"); do tac $f | grep -m 1 'some_pattern'; done