【发布时间】:2016-06-08 02:26:53
【问题描述】:
我有以下问题。我的文件如下所示:
1082016051300000010005690902BCDEΔ0204366221002201612052016-00001274448A
1082016051300000010034397704EDFG10865125102001201626042016-000001028134
1082016051300000010068901401RADJ34835974123112201528042016-000001343290
1082016051300000010068901401RADJ34835974103112201528042016-000000910290
1082016051300000010095474301RADJ13453401102812201525042016-00000208995K
1082016051300000010098429002RADJΤ1052947211312201218042016-000034021290
1032016051300000010095474301RADJ13453401102812201525042016-00000208995K
1032016051300000010098429002RADJΤ1052947211312201218042016-000034021290
我试图只打印与这两种模式匹配的行,在行的任何地方。我只想打印匹配两个模式的行,第一个模式在列 2:1 (08) 上,第二个模式是单词 (RAD)。我试过用 grep 做到这一点:
grep -o '.[0-1][1-8]*RAD' FILEIN
我得到的唯一回应是 FILEIN 是一个二进制文件。我也试过 sed 这个:
sed -n '/[0-1][1-8]*RAD/p' FILEIN
但我感觉 * 没有扩展。我已经设法通过连续寻找两种模式来使其工作,例如:
sed -n '/RAD/p' FILEIN | sed '/^108/p'
这可行,但我将用作输入的文件可能很大,而且我不确定将流通过管道传输到另一个流是否有效。有人可以帮助我吗?也欢迎 Awk 或 Perl。谢谢
【问题讨论】:
-
已经回答请访问here