У меня более 1000 файлов в одном каталоге, но интересующие меня файлы - половина из них!Я хочу искать только эти файлы для определенных вещей очень часто.К сожалению, невозможно сопоставить что-либо в FILENAME.Единственное, что я имею в виду, - это сопоставление некоторой строки, которая всегда представлена в «заинтересованных» для меня файлах в примере: «специальные» ... и составить каким-либо образом СПИСОК этих файлов и искать их только в них для некоторых вещей.Может быть, какие-то сложенные команды grep?
Моя попытка найти пропущенную строку " line4 " во всех файлах:
grep -c 'line4' * | grep -P ':0$'
file2.log:0
file3.log:0
file4.log:0
file5.log:0
# -c count lines that match the string and grep zero ones..
Например, у нас есть 5 файлов в одной папке:
ls -l
file1.log # interesed file (always contains on some line word: "special")
file2.log # interesed file (always contains on some line word: "special")
file3.log # interesed file (always contains on some line word: "special")
file4.log # NOT interesed file
file5.log # NOT interesed file
cat file1.log
line1
special
line2
line3
line4
line5
cat file2.log
line1
line2
special
line3
cat file3.log
line1
line2
special
line3
line5
cat file4.log
line1
line2
line3
line5
cat file5.log
line1
line2
line3
line5
Результат должен быть только file2 и file3, потому что содержит уникальную строку «special» и слово «line4» НЕ присутствует в этих заинтересованных файлах:
file2.log
file3.log