У меня есть проблема, я надеюсь, кто-то сможет помочь ...Grep -f для файлов в архивированной папке
Я выполняю рекурсивный fgrep/Grep -f поиска на застежку папки с помощью следующая команда в одной из моих программ:
команды Я использую
grep -r -i -z -I -f /path/to/pattern/file /home/folder/TestZipFolder.zip
Внутри файл шаблона является строкой «Собака», что я пытаюсь найти.
В папке с застежкой-молнией имеется несколько текстовых файлов, содержащих строку «Собака».
Команда grep -f успешно находит текстовые файлы, содержащие строку «Собака», в 3 файлах внутри зашифрованной папки, но печатает вывод на одной строке, а в конце появляются некоторые странные символы, то есть PK (as показано ниже). И когда я пытаюсь напечатать вывод в файл в моей программе другие символы появляются на конце, такие как ^B^T^@
Выход из Grep -f команды:
TestZipFolder/test.txtThis is a file containing the string DogPKtest1.txtDog, is found again in this file.PKTestZipFolder/another.txtDog is written in this file.PK
Как я мог бы получить каждый из файлы, где строка «Собака» была найдена для печати на новой строке, чтобы они не были сгруппированы вместе на одной строке, как сейчас? И где находятся «ПК» и другие странные символы, появляющиеся на выходе, и как я могу помешать им появиться?
Желаемая выход
TestZipFolder/test.txt:This is a file containing the string Dog
TestZipFolder/test1.txt:Dog, is found again in this file
TestZipFolder/another.txt:Dog is written in this file
Что-то вдоль этих линий, в результате чего пользователь может увидеть, где строка может быть найдена в файле (вы на самом деле получить выход в этом формате, если вы запустите Grep команда на файл, который не является zip-файлом).
ваша помощь с этим очень ценится, благодаря
Есть ли способ показать, где совпадение находится в файле, например, в команде grep в моем вопросе ?, а не просто перечислять файл, в котором он найден? - Большое спасибо –
Можете ли вы предоставить желаемый результат? Если да, я могу попробовать. – blackSmith
Обновлен мой вопрос, чтобы показать желаемый результат. Это тот же формат, что и выход, если вы запустите команду grep в папке, которая не является zip-файлом (то есть она дает имя файла, в котором было найдено совпадение, после того, как двоеточие показывает, где оно). много –