AWKマルチモード

AWKマルチモード

このようなデータがあり、CCCのVar列を抽出したいのですが、2018年と2019年の最初の3ヶ月間だけ抽出したいと思います。

ID   Date  Var
--- ------ ---
AAA 201701 110
BBB 201705 211
CCC 201710 312
AAA 201712 413
BBB 201801 514
CCC 201801 615
AAA 201802 716
BBB 201802 817
CCC 201803 918
AAA 201803 119
BBB 201804 220
CCC 201804 321
AAA 201901 222
BBB 201902 312
CCC 201903 111

出力は615,918,111でなければなりません。

デートパターンを作りたいです。

これまで私はこれを試しました

awk '/CCC/ && /201801/ && /201802/ && /201901/ && /201902/&& /201903/ { print $3 } ' file.txt

awk ' $1 ~ /CCC/ || /201801/ && /201802/ && /201901/ && /201902/&& /201903/ { print $3 } ' file.txt

ベストアンサー1

awk '$1 == "CCC" && $2 ~ /201[89]0[123]/{print $3}' filename

出力

615
918
111

Python

#!/usr/bin/python
import re
u=re.compile(r'201[89]0[123]')
k=open('filename','r')
k.read
for i in k:
    j=i.split(' ')
    if j[0] == "CCC":
        if re.search ( u,j[1]):
            print j[2].strip()

出力

615
918
111

おすすめ記事