特定パターンのファイルを探す

特定パターンのファイルを探す

名前にabcを含むファイルを見つけたいです。

たとえば、

Dozain123.ctabcln_WbLogReq.log '

Dozain123.ctabcln_WbLogReq123.log

Dozain123.ctabcln_WbLogReq456.log

Dozain123.ctabcln_WbLogReq341.log

どのコマンドを使用する必要がありますか?

ベストアンサー1

そのファイルがある場合現在のディレクトリあなたがリストしたいもの:

ls ./*abc*

このファイルを繰り返すには、次のようにします。

for fname in ./*abc*; do
    # do something with "$fname"
done

現在のディレクトリまたは一部のサブディレクトリで(再帰的に)そのエントリを見つけるには、次の手順を実行します。

find . -type f -name '*abc*' -print

(ここでは、探しているすべての名前がディレクトリ名などではなく通常のファイル名であると仮定します。)

何かしたい場合これら名前:

find . -type f -name '*abc*' -exec sh -c '
    for fname do
        # do something with "$fname" here
    done' sh {} +

ファイル名の再帰的な一致を実行するには、一部のシェル(デフォルトではinとin)**で使用可能なglobbingパターンを使用します。zshshopt -s globstarbash

for fname in ./**/*abc*; do
    # do something with "$fname"
done

シェルを使用して、zsh通常のファイル名(ディレクトリなどではない)のみが一致することを確認してください。

for fname in ./**/*abc*(.); do
    # do something with "$fname"
done

関連:

おすすめ記事