findコマンドを使用して2つの異なるディレクトリにあるファイルを検索したいと思います。
find $file_dir1 $file_dir2 -name 'searchpattern*' | tail -10
今このコマンドを使用していますが、大文字と小文字を区別して検索します。私はそれを試しましたが、-iname
私のLinuxコンピュータはそれをサポートしていません。大文字と小文字を無視してすべてのファイルを一覧表示する必要があります。
ベストアンサー1
find "$file_dir1" "$file_dir2" \
-name '[sS][eE][aA][rR][cC][hH][pP][aA][tT][tT][eE][rR][nN]*'
つまり、x
like 文字を or と一致する括弧式で置き換え、大文字と小文字を区別する小文字の一致を大文字と小文字を区別しない一致で効果的に置き換えます。[xX]
x
X
x
x
ffi
単一文字ではなく大文字または小文字の翻訳などの一部の文字では、次の方法を使用する必要があります。
find "$file_dir1" "$file_dir2" \
\( -name '*[sS][uU]ffi[xX]' -o -name '*[sS][uU]FFI[xX]' \)
または代わりに、またはと[ffiFFI]
一致します。ffi
F
I
ffi
FFI
ファイル名とディレクトリ名に改行文字が含まれていないことを保証できる場合は、find
各ファイルパスを印刷してawk
ファイル名でフィルタリングすることもできます。
find "$file_dir1" "$file_dir2" |
awk -F/ 'tolower($NF) ~ /^searchpattern/'
toupper($NF) ~ /^SEARCHPATTERN/
(上記と必ずしも同じではありません。)または、すべてのロケールのすべての人がffi
文字の大文字または小文字のバリエーション(たとえば、大文字i
I
またはİ
?)に同意しないためです。grep -i
区別するマッチングツールまたは他のツール)。