2017-08-01 72 views
0

我需要对包含以下信息的文件行进行计数。unix命令cut + grep提取一些详细信息

  1. 第一2个字符必须是21
  2. 第54字符必须是0或6
  3. 的57-58字符必须是大于49

我需要这在一个命令如果可能的话。 我试过如下:

切-c 1-2,54 $文件名| grep的-e 210 -e 216

这给我的第2个条件。 我不知道如何得到第三个条件匹配。 如果我做这样的事情:

切-c 1-2,54,57-58 $文件名| grep的-e 210 -e 216

然后我得到的也喜欢22160东西匹配模式,这是不正确的。

我该如何做到这一点?

+0

请,张贴一些样本数据。 –

回答

0

我想你可能会用awk来实现你的目标。

awk '(substr($0,1,2)==21 && (substr($0,54,1)==0 || substr($0,54,1)==6) && substr($0,57,2)>49){count=count+1} END{print count==""?0:count}' Your_file 

简要说明,

substr($0,s,l):从s提取$0开始的子串和其长度为l