使用shell脚本,如何在文本中查找数字行

时间:2014-08-14 02:03:56

标签: shell

我试图找到与模式x.y或x.y.z匹配的行,其中x,y和z是数字。

例如,给出以下行:

1.0/
2.2.5rc1/
2.3.0/
2.3.1/
abc-1.0.0/

结果应该是:

1.0  
2.3.0  
2.3.1

我该怎么做?

2 个答案:

答案 0 :(得分:0)

你可以做到

grep -C 2 yourSearch yourFile 

要将其发送到文件中,请执行

grep -C 2 yourSearch yourFile > result.txt

希望它有所帮助!

答案 1 :(得分:0)

要了解的事情:

  1. 使用grep在扩展模式下呼叫-E
  2. 使用^启动模式,表示您希望搜索从第一个字符开始。
  3. 要搜索数字,请使用\d
  4. 要搜索点,请使用\.
  5. 要搜索thing1或thing1,请使用thing1|thing2
  6. 注意:正如Jonathan Leffler在下面指出的那样,\d是一种符号,可能不适用于所有版本的grep。请尝试[0-9][[:digit:]]符合grep。

    的POSIX标准实现

    知道了,我们把它放在一起:

    grep -E "^(\d.\d.|\d.\d.\d)/" yourfile