Хотя ваш вопрос неясен, ваш ответ на комментарий Эда Мортона дает немного больше ясности относительно того, чего вы пытаетесь достичь. Где это все еще неясно, это именно то, что вы хотите от третьего поля. Судя по вашему вопросу и различным комментариям, появляется, если строка начинается с 30.10
, вы хотите получить первое 4-digits
из второго поля и вам нужны самые правые цифры, [1-9]
из третьего поля.
Если это точно отражает то, что вам нужно, то awk
с комбинацией строковых функций substr
, match
и length
может выделить интересующие вас цифры. Например:
awk '/^30.10/ {
l=match ($3, /[1-9]+$/)
print substr ($2, 1, 4) " " substr ($3, l, length($3)-l+1)
}' test
Примет входной файл (заимствованный из ответа Дуди Боя), например,
$ cat test
30.1006 35470015000205910002019070420190705 00000014870000000034
30.1006 35470015000205900002019070420190705 00000014890000001143
30.1006 35470015000205900002019070420190705 00000014890000000029
30.1006 35470023000205920002019070420190705 00000014900000000011
и вернемся к вам:
3547 34
3547 1143
3547 29
3547 11
Дайте мне знать, точно ли это отражает то, что вам нужно.