異なる形式で同じ日付の行をフィルタリングする方法

異なる形式で同じ日付の行をフィルタリングする方法

次のtxtファイルがあります。

./201709.15.txt:88:word word TAG201709152000 word word
./201709.19.txt:3:word TAG201709152000 word word
./201710.10.txt:5:word word TAG201709152000 word word word

次の行だけをフィルタリングできます。

./201709.15.txt:88:word word TAG201709152000 word word

(つまり、同じ日付で始まり、./YYYMM.dd.txtTAGの後TAGYYYYMMddhhmm:)

シェルスクリプトを使用できますか?

答え1

1つの方法は次のとおりです。

grep -E '/([0-9]{6})\.([0-9]{2}).* TAG\1\2' file

答え2

アッ解決策:

awk -F'.' 'match($4,/TAG[0-9]{8}/) && substr($4,RSTART+3,RLENGTH-3) == substr($2$3,2)' file

出力:

./201709.15.txt:88:word word TAG201709152000 word word

関連情報