Я хотел бы извлечь только число из текстового файла. Это похоже:
corner_lat: 49.0425000 decimal degrees
Я использую следующее выражение:
grep corner_lat EQA.dem_par | sed "s,[^0-9]*,,"
но это отдает также "десятичные градусы", Как может изменить это для получения только числа?
Вы должны использовать 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
Если формат всех строк в файле является тем же, можно использовать awk
или cut
вместо sed
для извлечения только второго colum.
Как пример:
grep corner_lat EQA.dem_par | awk '{print $2}'