Я пишу сценарий оболочки для поиска файлов, содержащих строку «match1» И не содержит «match2».Найти файлы, которые содержат строку match1, но не содержит match2
я могу сделать это в 2-х частей:
- Grep -lr "match1" *>/TMP/match1
- Grep -lr "match2" *>/TMP/match2
- комм - 12/tmp/match1/tmp/match2
Есть ли способ, которым я могу достичь этого напрямую, не прорабатывая процесс создания временных файлов?
Вы должны были бы сбросить переменные и распечатать предыдущая FILENAME в 'FNR == 1' блоки для того, чтобы работать на более 1 файл. Использование ENDFILE с GNU awk вместо END может упростить работу. –
Хорошая точка. Я признаю, что я тестировал только один файл. – hek2mgl
Не так много времени, чтобы изменить ответ atm. Использовал help 'find', в то время как awk мог даже сделать это самостоятельно, используя метод FNR == 1, который вы упомянули. – hek2mgl