Find и grep не работают, насколько я знаю, потому что мне нужно создать список файлов, которые удовлетворяют ЛЮБОМУ требованию, а не обоим. Я предполагаю, что для этого требуется больше, чем одна строка. Есть предложения?
решение1
Это возможно с помощью следующей команды:
comm -3 <(find path -name '*string*' | sort) \
<( grep -r 'string' path | sed s=^=./= | sort)
Вам может потребоваться изменить sed
часть, чтобы пути, сообщаемые find
и grep
совместимые. -3
Переключение на comm
подавляет печать файлов, которые появляются в обоих списках.