コマンドラインでawkの正規表現の一致

コマンドラインでawkの正規表現の一致

unrarコマンドからファイル名を詳細に取得し、コマンドラインから削除しようとしています。

unrar コマンドの出力は次のようになります。

Extracting  BucketSort.cpp                                            OK 
Extracting  BucketSort.vcxproj                                        OK 
Extracting  BucketSort.vcxproj.filters                                OK 
Extracting  BucketSort.lastbuildstate                                 OK 
Extracting  BucketSort.log                                            OK 
Extracting  BucketSort.obj                                            OK 
Extracting  BucketSort.pch                                            OK 

これまで、私は次のawkコマンドを思いつきました。

unrar e BucketSort.rar | awk '{if (match($0,/Extracting\s*([\w|.]+)\s*OK/,m)) print m[0]}'

しかし、何も印刷されません。一致するように「抽出中」という単語だけを残しておくと、抽出されたすべてのファイルに対して「抽出中」と表示されます。だから正規表現で書かれた内容を認識できませんが、それが何かはわかりません。この表現の問題は何ですか?

PS:正規表現を確認できますここ

ベストアンサー1

これにより、トリックを実行できます。

unrar e BucketSort.rar | awk '/^Extracting/ {print $2}'

おすすめ記事