Имам главна директория, в която трябва да изпълня команда find и/или grep, за да върна списък с файлове, които съдържат конкретен низ.
Ето пример за настройка на файл и директория. В действителност тази основна директория съдържа много поддиректории, всяка от които има много поддиректории и файлове, но този пример, надявам се, разбира моята гледна точка.
От root трябва да мина през всяка от дъщерните директории, по-специално в subdir/ и да потърся file.html за низа "example:". Ако бъде намерен резултат, бих искал той да отпечата пълния път до file.html, като например website_two/subdir/file.html.
Реших, че ограничаването на търсенето до subdir/file.html ще увеличи значително скоростта на тази операция.
Не съм много запознат с командите find и grep, но опитах следното без успех, но честно казано не знам как да го отстраня.
find . -name "file.html" -exec grep -HI "example:" {} \;
РЕДАКТИРАНЕ: Разбирам, че това може да е маркирано като дубликат, но мисля, че въпросът ми е по-скоро за това как мога да кажа на командата да търси само конкретен файл по конкретен път, преминавайки през всички директории на ниво root->.
-I
означава нечувствителен към главни и малки букви), в противен случай замяната на крайния\;
с+
ще стартира по-малко процеси поради последния аргумент {}, който ще бъде заменен с толкова аргументи, които могат да се поберат в командния ред - person Nahuel Fouilleul   schedule 09.06.2017grep
s файлове с дадено име за даден низ. Вижте тук. Можете да промените командатаgrep
, за да отговаря на вашите нужди. - person James Brown   schedule 09.06.2017find -exec grep
, което имате? Наистина не виждам защо не работи. - person ilkkachu   schedule 10.06.2017