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"之类的描述或空的,如果该列为空,我该如何过滤掉数据?

提前感谢!

此脚本具有所有条件

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