このファイルの各行からCSVファイル名を抽出する方法

このファイルの各行からCSVファイル名を抽出する方法

次の行を含むファイルがあります。

-rw-rw-rw 1 root root 6379 May 24 2016 test1.CSV 
-rw-rw-rw 1 root root 23249 May 25 2016 test2.CSV 
-rw-rw-rw 1 root root 2995 May 26 2016 test3.CSV 

CSVファイル名のみを保持してください。正規表現を使用する必要がありますが、どちらが正しいかわかりません。

予想される結果は、「test1.CSV \n test2.CSV \n test3.CSV」です。

ベストアンサー1

あなたはそれを使用することができますgrep

grep -io '[^ ]*\.csv' filename

-i、--ignore-case大文字と小文字の違いを無視して、大文字と小文字のみが異なる文字のみを一致させます。

-o、--only-matching一致する行のうち、一致する(空でない)部分のみを印刷します。各部分は別々の出力行に表示されます。

[^ ]*\.csv.csv の末尾のスペースを除くすべての文字と一致します。

ファイル名にスペースがないとします。

またはあなたは使用することができますawk

awk '{print $(NF)}' filename | grep -i '\.csv'

変数は$(NF)各行の最後のフィールドです。

おすすめ記事