使用grep在同一文本行中搜索多个模式[由换行符分隔]

时间:2013-05-08 19:05:43

标签: linux unix grep

我有一个文本文件,如下所示:

12345  12-02-2013 05:12:23:234 searchPeople service called by the follwoing input :
       name      : Tom
       id        : 12345
       regd_no   : REGD1234
12346  12-02-2013 05:12:23:240 response obtained from searchPeople service

我需要搜索多个模式:“name:Tom”和“regd_no:REGD1234”和grep。

任何男生都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

由于这是您的第一个问题,请尝试:

$ grep 'name\|regd_no' input.txt
       name      : Tom
       regd_no   : REGD1234

但将来请阅读FAQ ...

<强>更新

grep通常一次只能在一行上运行,但由于你的示例文件很短,一种解决问题的方法是:

$ tr -d '\n' < input.txt | grep -o 'name\s*:\s*Tom\|regd_no\s*:\s*REGD1234'
name      : Tom
regd_no   : REGD1234