LINUX.ORG.RU

[sed][не осилил] как вырезать все с N-ого по M-ый символ?

 ,


0

0

например, имеется файл с кучей строк вида
>пыщь12 34 56 78пыщьпыщь
>фыва55 66 77 88пролджэ

нужно оставить все с 5-го по 11 символ. как это сделать?
или, наоборот, как вывести все до 5-го символа?
я пока додумался до костылей типа sed -e 's/....//'(что удалит первые 4 символа)

Если нет двухбайтовых символов, то

gotf ~ > echo '123456789abcdef' | cut -b5-11
56789ab

Если есть, то такой жутковатый костыль:

gotf ~ > echo '123456789abcdef' | sed -e 's/^....//' | egrep -o '^.{7}'
56789ab

Ничего умнее не осилил придумать.

GotF ★★★★★
()

$ echo 0123456789abcdef | sed -e 's/^.\{4\}\(.\{7\}\).*$/\1/'
456789a

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

> спасибо, не знал про cut

Интересно, еще топики про cut сегодня будут? :)

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

>спасибо, не знал про cut :)
в лорфак, однозначно.
(не идти, а добавить))

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