Чтобы получить имена файлов, которые содержат слово «measure_remove» в «компактном» каталоге, я сделал эту команду.
find ./compact/ -type f -exec grep -n 'measure_remove' {} \ -exec ls {} \;
- grep: ls: 'такого файла или каталога нет'
- grep: -exec: «такого файла или каталога нет»
- ./compact/prepare.js:44509: = "measure_remove";
- grep: ls: 'такого файла или каталога нет'
- grep: -exec: «такого файла или каталога нет»
Это работает, но я просто хочу получить имена файлов и результат. есть ли более одного пути?
1 ответ
Если вам просто нужны совпадающие имена файлов, передайте -l (el) в grep:
$ find compact -type f -exec grep -l 'measure_remove' {} \;
Если вы также хотите, чтобы строки совпадали, некоторые grep принимают -H, но все grep должны печатать имя файла, если вы дадите ему 2 имени файла. Распространенным методом является передача /dev/null в качестве второго файла для поиска:
$ find compact -type f -exec grep -n measure_remove /dev/null {} \;
Похожие вопросы
Новые вопросы
exec
Этот тег относится к запуску другой вспомогательной программы. Он назван в честь семейства системных вызовов POSIX, чье имя начинается с «exec» (в частности, «execve»), хотя подобные концепции существуют и на других платформах, особенно в сочетании с запуском другого процесса.