Извлечение диапазона символов из яруса с помощью sed, awk или grep? - PullRequest
0 голосов
/ 13 июня 2010

Итак, у меня есть 1 длинная строка с символами, например числами [1-1024] в одной строке (без "\ n", "\ t" и "\ b"):

1 2 3 4 5 6 7 8 9 10 11 ... 1024

Как извлечь и напечатать символы, например, ровно 55 символов после 46? Таким образом, вывод будет:

47 48 49 ... 101

Спасибо.

Ответы [ 4 ]

3 голосов
/ 14 июня 2010

Это ищет строку "Galeon-2b" и выводит следующие 55 символов.

sed -n 's/.*Galeon-2b\(.\{55\}\).*/\1/p' backup.sql
1 голос
/ 13 июня 2010

Вы можете использовать утилиту cut.Для вашего примера будет работать следующая команда.

cut -f 47-101 -d " " file_with_long_line

Вы также можете указать байтовые или символьные позиции или изменить строку разделителя, в зависимости от вашего ввода.

0 голосов
/ 13 июня 2010

Если вы действительно хотите использовать awk вместо cut, вы можете установить RS = "" и обрабатывать оттуда относительно нормально, с каждым числом как отдельной записью, точно так же, как это было в отдельной строке.

0 голосов
/ 13 июня 2010

Почему бы не использовать cut?

cut -d ' ' -f 46-101
...