Нахождение файлов/папок, содержащих 3 объекта текста

Я запускаю 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 минут, должного чистый размер и глубина поисков.

Любая справка, которую любой может дать, значительно ценилась бы =]

5
задан 24 February 2017 в 06:01

1 ответ

Необходимо использовать подстановочные знаки (*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
11
ответ дан 23 November 2019 в 08:48

Другие вопросы по тегам:

Похожие вопросы: