Файли Grep для вмісту


0

Я використовую команди "find" і "grep" cygwin для того, щоб знайти файли на основі деяких шаблонів. Я роблю це:

find . -iname '*.zip' -print -exec unzip -l {} \; 2> error.txt |grep -i vbs 

Він відмінно працює, і у мене є ім'я файлу з 'VBS' в ім'я файлу. АЛЕ тепер мені потрібно зробити подібне, але мені потрібно знайти ім'я файлу, засноване на його змісті, наприклад. 'vbs' не є частиною імені файлу, але є частиною вмісту файлу. Як він може бути змінений? Можливо, щось подібне:

знайти. -iname '* .zip' -print -exec unzip -l {} \ t 2 & gt; error.txt | xargs ??? Може хтось порадить? Дякую

Відповіді:


1

Оскільки ви збираєтеся grep вміст файлу, -l перерахування файлу zip не буде достатньо. потрібно фактично розпакувати його. тому:

temp=`mktemp -d`    
find . -iname '*.zip' -print -exec unzip -d $temp {} \; 2> error.txt
grep -ir vbs $temp   

Ну ... Це не працює так, я отримав цю помилку: grep: невідома опція - ------- Використання: grep [OPTION] ... PATTERN [FILE] ... Спробуйте grep --help 'для отримання додаткової інформації. grep: невідома опція - -------
susik
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.