lsを使用した複数のパターンの一致

lsを使用した複数のパターンの一致

ファイル名のFAILパターンによって決まる外部スクリプトで使用するために現在のディレクトリから失敗したログのリストを取得したいので、FAIL *を使用してスクリプトファイルと開く手順を提供しました。ただし、すべてのFAILファイルには、圧縮ファイルと圧縮されていないファイルの2種類があります。圧縮されていないファイルだけを開きたいです。

find FAIL*を接続できますが、*.gz/bz2/whateverが存在する場合は接続できませんか?

答え1

次の拡張子を使用して正規表現があるかどうかをテストできます。

for file in *FAIL*; do [[ ! $file =~ .(bz2|gz) ]] && printf "%s\n" "$file"; done

必須警告の挿入解析されないls...

答え2

コマンドを使用する場合は、次のようにfind拡張子で終わるファイルを省略できます.gz

$ ls -l
total 0
-rw-rw-r--. 1 saml saml 0 Oct 15 22:42 FAIL
-rw-rw-r--. 1 saml saml 0 Oct 15 22:42 FAIL.gz

$ find . -name "*FAIL*" ! -name "*.gz"
./FAIL

ls次のように出力をフィルタリングすることもできます。

$ ls *FAIL* | grep -v '.gz'
FAIL

lsただし、通常、出力の構造は出力を解析するのに役立ちませんので、出力を解析しないことをお勧めします。

関連情報