我需要输出unix文件中匹配的所有单词

我需要输出unix文件中匹配的所有单词

当我在名为 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另一个答案中显示的方法。

相关内容