У меня есть небольшой проект по созданию сценария bash, который ищет в файлах в ОС (Linux/Solaris) текущий IP-адрес и заменяет их другим IP-адресом.

Проблема заключается в том, что IP-адрес может быть в текстовых файлах или в нетекстовых файлах, таких как двоичные файлы / файлы данных.

Я использую команду:

 file --mime $PATH (--mime is valid only for linux)

Чтобы проверить, является ли файл текстовым файлом, или не текстовым файлом (как двоичный файл или файл данных и т.д.)

Это верно?

Например, если у меня есть команда:

file --mime $PATH (returns the results "text/plain")

Тогда это текстовый файл /ASCII, если нет, то это не текстовый файл?

Второй вопрос:

file --mime "--mime"     

Флаг действителен только для Linux, но не для Solaris, так какова альтернатива для Solaris?

Иногда команда file не определяет точное определение целевого файла, поэтому, если у кого-то есть другие идеи о том, как определить текстовый файл…?

1 ответ1

0

Нет, это не будет работать правильно. Попробуйте, например, запустить его в файле HTML.

Если я правильно помню, обычно ищут нулевой байт (за исключением того, что он не будет работать для файлов UTF-8). Для простых файлов ASCII это будет сделано:

$ hexdump -v -e '/1 "%02X "' <"$file" | fgrep -q 00

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .