LINUX.ORG.RU

tail -q -c N исходный_файл.txt > новый_файл.txt
head -q -c N исходный_файл.txt > новый_файл.txt
Есть подводный камень опция "-c N" это кол-во N байт а не символов, что для не латинских utf8-символов не одно и тоже.

Attila ★★
()
Ответ на: комментарий от Attila

про байты я заметил) Но я тут с проблемой столкнулся, у меня такой скрипт: выбор между 3 пунктами при помощи dialog: amd64, x86: i486, x86: i686 выбранный пункт пишется в файл, чтобы быть подставленным в команду wget, и я сделал так: wget -r -nd $(cat /root/mirror)releases/$(head -c 3 /root/arch)/current-stage3/ -A stage3-$(tail -c 4 /root/arch)*.tar.bz2 суть такова- в файле /root/arch Записано либо amd64, либо x86: i386, либо x86: i686 таким образом, для первого места Должно браться либо amd64 либо x86, а для второго- либо amd64, либо i686, либо i486(потому что эти части в названиях stage3-архивов есть). Но я обнаружил, что amd64- 5 символов, поэтому head -c 3 не проходит- «64» обрезается. А когда я попробовал вместо x86: i686 писать в файл x86 : 1686 и установить параметр -c 5, выскакивает ошибка pastebin.com/xKqhrBmt помогите, пожалуйста, решить эту проблему.

Vekt
() автор топика
Ответ на: комментарий от illifant

Не совсем это мне нужно. У меня следующая команда wget содержит 2 места, куда надо вставить архитектуры. Перечитайте мое сообщение- в первом месте выбор между x86 и amd64, а во втором- уже между тем, что Вы предложили

Vekt
() автор топика
Ответ на: комментарий от Vekt

Вместо head можно использовать `sed s/:*//` - это просто отсечёт все символы `:` и последующие, ну и соответственно вместо tail `sed s/*://`, а `amd64` по идее должно проскакивать через sed без изменений.

Attila ★★
()
Ответ на: комментарий от Vekt

я к тому, что получать значения не разрезанием каких-то строк, а явно назначать их при выполнении условий.

А что обозначить как $CHOSEN?

я вообще не понимаю, зачем писать кучу разных файлов вместо использования переменных окружения

illifant
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.