AWK按字符

时间:2018-02-01 22:53:48

标签: bash awk

如下数据集:

07021201180934221NJL B2018   12X 15253                                                                                                               030C       000000.299
07021201180934231NSL B2018   12X 15253                                                                                                               030C        00000.014
07021201180941061NNL B2018                                                                                                                           030C       000000.288

问题是:

  1. 第一个字符串“120118”中的字符表示日期“ddmmyy”,如何使用awk根据日期字符过滤行?

  2. 第一个字符串“NJL”或“NSL”或“NNL”中的字符表示数据类型,根据这三个字符过滤行的awk命令是什么?

  3. 第三列可能是“12X 15253”之类的描述或为空,如果列为空,如何过滤数据?

  4. 提前致谢!

1 个答案:

答案 0 :(得分:2)

此脚本具有所有条件

$ awk 'substr($1,5,6)==120118 && substr($1,length($1)-2)=="NNL" && $3$4==""' file