名前に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パターンを使用します。zsh
shopt -s globstar
bash
for fname in ./**/*abc*; do
# do something with "$fname"
done
シェルを使用して、zsh
通常のファイル名(ディレクトリなどではない)のみが一致することを確認してください。
for fname in ./**/*abc*(.); do
# do something with "$fname"
done
関連:
答え2
ファイル内のすべてのabc名を見つけるには:$ grep -R abc ./Direction
またはabcを含むファイルを見つけるには:$ ls -1 | grep abc または $lsアルファベット。 /方向