grep и sed только числа от строки текстового файла

Я хотел бы извлечь только число из текстового файла. Это похоже:

corner_lat:     49.0425000  decimal degrees

Я использую следующее выражение:

grep corner_lat EQA.dem_par | sed "s,[^0-9]*,,"

но это отдает также "десятичные градусы", Как может изменить это для получения только числа?

-1
задан 2 October 2018 в 14:51

2 ответа

Вы должны использовать g (глобальное замещение) для замены всех вхождений паттерна, который вы ищете:

grep corner_lat EQA.dem_par | sed "s/[^0-9.]*//g"

или как вы его написали:

grep corner_lat EQA.dem_par | sed "s,[^0-9.]*,,g"

Дон не забудьте добавить . в класс символов, иначе он тоже будет удален.

Ваша команда удаляет только первое появление шаблона:

corner_lat:     

И оставляя:

49.0425000  decimal degrees
1
ответ дан 22 September 2019 в 23:29

Если формат всех строк в файле является тем же, можно использовать awk или cut вместо sed для извлечения только второго colum.

Как пример:

grep corner_lat EQA.dem_par | awk '{print $2}'
1
ответ дан 22 September 2019 в 23:29

Другие вопросы по тегам:

Похожие вопросы: