我有一个需求,需要从文件中grep出匹配的模式,但必须按顺序。
$ cat patt.grep
name1
name2
$ grep -f patt.grep myfile.log
name2:some xxxxxxxxxx
name1:some xxxxxxxxxx
我得到的输出是先找到name2并打印,然后找到name1并打印。但是我的要求是按照patt.grep文件的顺序首先获取name1。
我希望的输出是:
name1:some xxxxxxxxxx
name2:some xxxxxxxxxx
$ grep -f patt.grep myfile.log | sort -u
。 - Jayesh Bhoipatt.grep
中模式的顺序无关,而是按照myfile.log
中行出现的顺序排列。在name1
之前,name2
就已经出现在myfile.log
中了。grep
按行遍历待搜索的文件,并将每一行与所有模式进行比较。如果您想按模式顺序排序,则需要多次运行grep
,每次针对一个模式运行一次。 - twalberg