首页 > 解决方案 > 获取最新的匹配字符串值

问题描述

我有一个包含两个initial...关键字值的文件。我想获取匹配initial...字符串的最新日期。获得日期后,我还需要通过替换来格式化/日期-

---other data
    INFO   | abc 1    | 2018/01/04 20:04:35 | initial...

    INFO   | abc 1    | 2018/02/05 17:01:42 | INFO | new| InitialLauncher | c.t.s.s.setup.launch | initial...

---other data

在上面的例子中,我的输出应该是2018-02-05. 在这里,我正在获取包含initial...值的行,并且只获取具有最新日期值的行。然后,我需要去掉剩余的字符串并只获取日期值。

我正在使用以下内容grep,但尚未达到要求。

grep -q -iF "initial..." /tmp/file.log

标签: linuxbashawksedgrep

解决方案


像这样的东西......

$ awk -F'|' '$NF~/initial\.\.\./ {if(max<$3) max=$3} 
             END  {gsub("/","-",max); 
                   split(max,dt," "); print dt[1]}' file

推荐阅读