Я запускаю Ubuntu 14.04 и в настоящее время пытаюсь искать файлы и папки, содержащие "привет", "165" и "920" (на их имена - не в файлах) использование команды ниже:
find . -name "hello 165 920" > /search/results/here/search20170224.txt
Когда я ищу строку как это в Немо ("привет 165 920"), данные результаты - то, к чему я стремлюсь. Если файлы или папки содержат слова "привет 165 920" (в данном распоряжении или среди другого текста) затем, результат показывают.
Примеры: helloxx165xx920, hello_165-920, hello165920
Таким образом, то, что я хочу сделать, определенно возможно, но через команду находки в CLI, я только получаю результаты для идеальных пар.
Я не могу разработать, как сделать этот вид поиска с помощью команды находки, и я должен запустить приблизительно 500 из этих поисков один за другим; таким образом, подход CLI необходим так, я не заканчиваю тем, что имел необходимость установить каждый поиск вручную и закончить тем, что разрушил Немо каждые 5 минут, должного чистый размер и глубина поисков.
Любая справка, которую любой может дать, значительно ценилась бы =]
Необходимо использовать подстановочные знаки (*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