Я хотел бы прочитать только первые 8 символов текстового файла и сохранить его в переменной в bash. Есть ли способ сделать это, используя только bash?
Прочитайте первые 8 символов текстового файла с помощью bash
Ответ 1
Вы можете запросить head
для чтения нескольких байтов. Для вашего конкретного случая:
$ head -c 8 <file>
Или в переменной:
foo=$(head -c 8 <file>)
Ответ 2
в bash
help read
вы увидите, что вы можете:
read -r -n 8 variable < .the/file
Если вы хотите прочитать первые 8, независимо от разделителей,
IFS= read -r -n 8 variable < .the/file
Но не используйте
.... | while IFS= read -r -n 8 variable
как, в bash, части после "|" выполняются в подоболочке: "переменная" будет только изменена в этой подоболочке, и это новое значение потеряно при сохранении в текущей оболочке.
Ответ 3
Вы можете использовать массив в bash и выбирать только первые символы. Advanced bash В руководстве по разработке сценариев есть примеры использования массивов.