私はUbuntu 14.04を実行していますが、現在、次のコマンドを使用して「hello」、「165」、「920」を含むファイルとフォルダを検索しようとしています。
find . -name "hello 165 920" > /search/results/here/search20170224.txt
Nemo( "hello 165 920")でこのような文字列を検索すると、得られた結果は私が目指しているものです。ファイルまたはフォルダーに「hello 165 920」という単語が含まれている場合(任意の順序または他のテキストの中で)、結果が表示されます。
例:helloxx165xx920、hello_165-920、hello165920
したがって、私がやりたいことは間違いなく可能ですが、CLIのfindコマンドを使用して、完全に一致する結果のみを取得しています。
Findコマンドを使用してこの種の検索を実行する方法を見つけることはできません。これらの検索を約500回順番に実行する必要があります。そのため、CLIのアプローチが必要なので、各検索を手動でセットアップする必要がなくなり、検索のサイズと深さが原因で5分ごとにNemoがクラッシュすることになりません。
誰でもできる助けは大歓迎です=]
ワイルドカード(foo
の代わりに*foo*
)、複数の-name
テストを使用し、-and
と組み合わせる必要があります。
find . -name "*hello*" -and -name '*165*' -and -name "*920*" > search20170224.txt
検索する文字列が多数ある場合は、各文字列が(スペースで区切られた)列であるファイルに保存できます。
hello 165 920
goodbye 321 123
その後、ファイルを反復処理して、find
クエリを作成できます。
while read a b c; do
find . -name "*$a*" -and -name "*$b*" -and -name "*$c*" > search."$a"_"$b"_"$c".txt
done