我想从文本文件中提取数字。如下所示:
corner_lat: 49.0425000 decimal degrees
我使用以下表达方式:
grep corner_lat EQA.dem_par | sed "s,[^0-9]*,,"
但是这也会返回“十进制度”如何修改它以仅获取数字?
答案1
您必须使用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
答案2
如果文件中所有行的格式相同,则可以使用awk
或cut
代替sed
仅提取第二列。
举个例子:
grep corner_lat EQA.dem_par | awk '{print $2}'