在文件中找到一个单词并基于它,查找/上面找到另一个(bash/shell)

rm5edbpk  于 12个月前  发布在  Shell
关注(0)|答案(1)|浏览(122)

我有一个文件如下

Name: Country name
Line1
Line2 In this line is the word I want to find 
Line3
Line4
......
LineN
Name: Country name
Line1
Line2
Line3
Line4 In this line is the word I want to find
......
LineN
More sections like above....

每个部分的行数是可变的...我想在任何一行中找到一个单词(我可以用grep来做),但在那之后,我需要去找“Name:国名“也是,我试着寻找解决方案,但没有运气,任何建议?
我只试过grep和grep -AN或-BN,但由于行数可变,并且匹配项可以在任何行中,因此不容易找到国家名称

vktxenjb

vktxenjb1#

使用awk。当它看到一个Name:行时,它将其保存在一个变量中,当它看到你想要匹配的行时,它会打印这个变量。

awk '/^Name:/ {country = $0; next}
     /word-to-find/ {print country}' file.txt

相关问题