名前から特殊文字を探す

名前から特殊文字を探す

名前に〜*やその他の特殊文字を含むファイルを見つける方法は?

例えば

find . -name "*\*"

これは「すべての文字」と一致するはずです*が、何も一致しません。コマンドがファイルと正しく一致するようにするにはどうすればよいですか?

ベストアンサー1

実装は異なりますが、findすべてワイルドカードで文字クラスを処理する必要があります(POSIX.2、セクション3.13)。

find . -name '*[~*]*'

改行文字が「特殊」文字の1つである場合は、シェルがそれらを見つけるために渡す方法を理解する必要があるかもしれません。 Bashでは、次のものを使用できます。

find . -name $'*[\t \n]*'

たとえば、スペースを含むファイルを表示します。より簡単な方法は、サポートされている場合は文字クラスを使用することです。

find . -name '*[[:space:]]*'

おすすめ記事