当我在名为 raw.txt 的 unix 文本文件中拥有这组数据时
2020-05-28 08:00:32,360 | push_imgs | INFO | Pulled 950-09050294592-FACE.jpg
2020-05-28 08:00:32,373 | push_imgs | INFO | Pulled 950-09050294592-SIGNATURE.jpg
我只需要打印日期和 .jpg 文件。就像下面的示例一样
2020-05-28 950-09050294592-FACE.jpg
我目前有下面的脚本,它将只获取所有带 pull 和 .jpg 的行。我只需要打印日期和 .jpg 文件。
awk '/Pulled/&&/.jpg/' IGNORECASE=1 /home/user/rawfile.txt
多谢!
答案1
您是否尝试过打印相应的字段?
awk '/Pulled/&&/.jpg/ { print ($1 $9);} ' IGNORECASE=1 yourfile
答案2
假设所有行都采用问题中显示的格式,您可以简单地使用cut
$ cut -d' ' -f 1,9 yourfile
2020-05-28 950-09050294592-FACE.jpg
2020-05-28 950-09050294592-SIGNATURE.jpg
如果还有其他行,您可以使用过滤egrep
$ grep 'jpg[[:blank:]]*$' yourfile | cut -d' ' -f 1,9
$ grep -E 'Pulled .+jpg[[:blank:]]*$' yourfile | cut -d' ' -f 1,9
匹配[[:blank:]]*$
行尾,即使jpg
与实际行尾之间有空格
或者当然使用awk
另一个答案中显示的方法。