字符串的最后一部分我有这样一行:如何打印在shell脚本
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'绝对,积极保证是最后一次后,给什么每行中的字段 - 不仅仅是当前版本的日志字符串,还包括所有将来的版本?就我个人而言,我会谨慎做出这样的假设。 –
顺便说一句 - 你是一个人一次处理一行还是一个文件?它在性能上有很大的不同:你最好使用'awk'来处理大流,而如果你每次都要使用一条线,那么使用bash builtins会节省启动外部进程的(显着)成本。 (也就是说:如果你只是运行每行日志的awk的一个副本,那么anubhava的答案比我的慢得多,但是采用anubhava的awk并给它20MB的日志来解析所有的日志要比使用它快得多bash-builtin字符串操作循环)。 –