Если, как и я, ваш минималистический Unix не включает в себя такие тонкости, как команда file , и обратные слеши в ваших grep выражениях просто не взаимодействуют, попробуйте следующее:
$ for file in `find . -type f` ; do
> dump $file | cut -c9-50 | egrep -m1 -q ' 0d| 0d'
> if [ $? -eq 0 ] ; then echo $file ; fi
> done
Модификации, которые вы, возможно, захотите сделать, включают:
- настройте команду find , чтобы найти только файлы, которые вы хотите сканировать
- измените команду dump на od или любую другую имеющуюся утилиту для дампа файлов
- подтверждает, что команда cut включает в себя как начальный и конечный пробел, так и только шестнадцатеричный символ, выводимый из утилиты dump
- ограничить вывод dump первыми 1000 символами или около того для эффективности
Например, что-то подобное может работать для вас, используя od вместо dump :
od -t x2 -N 1000 $file | cut -c8- | egrep -m1 -q ' 0d| 0d|0d$'