Я почти уверен, что делал это в прошлом (и что где-то есть ответ), но сейчас не могу вспомнить.
Я ищу однострочный для поиска (и возврата / эха) совпадений как в файле имени файла , так и в файле .
Вероятно, проще всего было бы запустить grep
и find
отдельно друг за другом; но я бы предпочел однострочник ...
... , если не было возможности с точкой с запятой (?) Или другим способом запускать эти инструменты последовательно.
Я не думаю, что решение, которое я найду, будет включать в себя трубопровод | потому что, заимствуя из теорию множеств , меня интересует объединение из двух множеств A и B ( A ∪ B ), а не их пересечение strike> (A ∩ B).
Попробуйте это в своем терминале ( CTRL kbd> + ALT kbd> + T kbd>)
find <here your starting string > -type f -exec grep -l <here place the part of file name> {} \;
Описание вышеуказанной команды :
find snow -type f
-> найти все файлы, начиная со снега. find .... -exec
-> для каждого найденного элемента выполните следующую команду. Там, где вы обычно размещаете имя файла в вашей команде, поставьте {}. grep -l "String" something
-> возвращает имя файла, если в файле обнаружена строка «String».
Кредит: dbasupport.com
Вы правы - вы можете использовать точку с запятой для последовательного запуска списка команд:
$ find . -name 'test'; grep test *
Вы также можете сгруппировать его для запуска одной командой: http: //www.gnu. орг / программное обеспечение / Баш / ручной / html_node / Command-Grouping.html