我想在另一个字符串之前找到前面的字符串。例如:Bash:在文件的另一个字符串之前找到一个字符串
StringA <stuff 1>
StringA <stuff 2>
StringD
...
StringB <stuff 3>
StringA <stuff 4>
StringA <stuff 5>
StringA <stuff 6>
StringD
StringB <stuff 7>
我想查找所有在文件中的StringB前面的“StringA”。
此示例中的输出是:
StringA <stuff 2>
StringA <stuff 6>
我能够做到通过使用发现所有的StringB的行号:grep的-n“StringB”
那么我可以用SED -n 1,$ line_numberp这使我从第1行转到StringB行。我做grep“StringA”|尾-n1
这似乎是工作,但有点麻烦。有没有更好的方法来达到预期的效果?
4和5呢?就我所知,这些先于B。 – squiguy 2013-04-25 00:35:18
我只是寻找前一个,唯一的最后一个在stringB之前。 – user1777907 2013-04-25 01:15:21