У меня есть эта строка:как напечатать последнюю часть строки в сценарии оболочки
102:20620453:d=2017021012:UGRD:10 m above ground:15 hour fcst::lon=79.500000,lat=9.000000,val=-5.35
Теперь я хочу просто напечатать значение -5.35 от этой линии, и больше ничего.
Я также хочу, чтобы эта команда могла извлекать -7.04 из этой строки и ничего больше.
102:20620453:d=2017021012:UGRD:10 m above ground:15 hour fcst::lon=280.500000,lat=11.000000,val=-7.04
Я прочитал другие вопросы переполнения стека, и они, похоже, не дошли до того, что я искал. Я заметил, что они сделали вас awk или sed. Какие типы вещей я должен сделать, чтобы иметь возможность извлекать только часть вышеуказанных строк после val =?
ли 'val' абсолютно положительно гарантированно будет последним в каждой строке - не только для текущей версии строки журнала, но и для всех будущих версий? Лично я был бы осторожен в принятии такого предположения. –
BTW - вы обрабатываете одну строку за раз или весь файл в пути? Это имеет большое значение в производительности: вам лучше использовать 'awk' для больших потоков, тогда как если вы идете по очереди за раз, использование встроенных настроек bash позволит сэкономить (значительную) стоимость запуска внешнего процесса. (То есть: ответ anubhava намного медленнее, чем мой, если вы просто запускаете одну копию awk на строку ведения журнала, но гораздо быстрее взять awk от anubhava и дать ему 20 МБ журналов, чтобы разобрать все сразу, чем использовать bash-встроенная строковая манипуляция в цикле). –