Книга: Искусство программирования на языке сценариев командной оболочки
Пример 10-7. grep для бинарных файлов
Пример 10-7. grep для бинарных файлов
#!/bin/bash
# bin-grep.sh: Поиск строк в двоичных файлах.
# замена "grep" для бинарных файлов.
# Аналогично команде "grep -a"
E_BADARGS=65
E_NOFILE=66
if [ $# -ne 2 ]
then
echo "Порядок использования: `basename $0` string filename"
exit $E_BADARGS
fi
if [ ! -f "$2" ]
then
echo "Файл "$2" не найден."
exit $E_NOFILE
fi
for word in $( strings "$2" | grep "$1" )
# Инструкция "strings" возвращает список строк в двоичных файлах.
# Который затем передается по конвейеру команде "grep", для выполнения поиска.
do
echo $word
done
# Как указывает S.C., вышепрведенное объявление цикла for может быть упрощено
# strings "$2" | grep "$1" | tr -s "$IFS" '[n*]'
# Попробуйте что нибудь подобное: "./bin-grep.sh mem /bin/ls"
exit 0
Еще один пример.
- Пример 10-1. Простой цикл for
- Пример 10-2. Цикл for с двумя параметрами в каждом из элементов списка
- Пример 10-3. Fileinfo: обработка списка файлов, находящегося в переменной
- Пример 10-4. Обработка списка файлов в цикле for
- Пример 10-5. Цикл for без списка аргументов
- Пример 10-6. Создание списка аргументов в цикле for с помощью операции подстановки команд
- Пример 10-7. grep для бинарных файлов
- Пример 10-8. Список всех пользователей системы
- Пример 10-9. Проверка авторства всех бинарных файлов в текущем каталоге
- Пример 10-10. Список символических ссылок в каталоге
- Пример 10-11. Список символических ссылок в каталоге, сохраняемый в файле
- Пример 10-12. C-подобный синтаксис оператора цикла for
- Пример 10-13. Работа с командой efax в пакетном режиме
- Пример 10-14. Простой цикл while
- Пример 10-15. Другой пример цикла while
- Пример 10-16. Цикл while с несколькими условиями
- Пример 10-17. C-подобный синтаксис оформления цикла while
- Пример 10-18. Цикл until
- Пример 10-5. Цикл for без списка аргументов
- Пример 10-9. Проверка авторства всех бинарных файлов в текущем каталоге
- Пример 10-14. Простой цикл while
- Пример 10-18. Цикл until
- Пример 10-12. C-подобный синтаксис оператора цикла for
- Пример 10-2. Цикл for с двумя параметрами в каждом из элементов списка
- Пример 10-6. Создание списка аргументов в цикле for с помощью операции подстановки команд
- Пример установочного скрипта
- Пример из практики
- Резервное копирование многофайловых баз данных
- Восстановление из резервных копий многофайловых баз данных
- Создание файлов с блокировкой