如何从文本文件中打印两个字段?

时间:2020-06-19 12:35:46

标签: linux awk

我的机器上有一个日志文件,其中包含以下内容。

2020-06-18 00:01:31|INFO|0||pro_upl_postpaid_trap|ComUpload|CUploadProcessRemoteFile.cpp[95]|rename remote file success,source filename=/file_src/localusers/data/TRAP_CBS/recv/ovou20200617_999_400280.unl.temp,destination filename=/file_src/localusers/data/TRAP_CBS/recv/**ovou20200617_999_400280.unl**
2020-06-18 00:01:32|INFO|0||pro_upl_postpaid_trap|ComUpload|CUploadProcessRemoteFile.cpp[95]|rename remote file success,source filename=/file_src/localusers/data/TRAP_CBS/recv/ocom20200617_512_400106.unl.temp,destination filename=/file_src/localusers/data/TRAP_CBS/recv/ocom20200617_512_400106.unl
2020-06-18 00:01:32|INFO|0||pro_upl_postpaid_trap|ComUpload|CUploadProcessRemoteFile.cpp[95]|rename remote file success,source filename=/file_src/localusers/data/TRAP_CBS/recv/ocom20200617_515_400184.unl.temp,destination filename=/file_src/localusers/data/TRAP_CBS/recv/ocom20200617_515_400184.unl
2020-06-18 00:01:33|INFO|0||pro_upl_postpaid_trap|ComUpload|CUploadProcessRemoteFile.cpp[95]|rename remote file success,source filename=/file_src/localusers/data/TRAP_CBS/recv/odata20200617_517_400092.unl.temp,destination filename=/file_src/localusers/data/TRAP_CBS/recv/odata20200617_517_400092.unl

我想从此日志文件中打印出3个字段,如下所示:

2020-06-18 00:01:31|**ovou20200617_999_400280.unl**

我能够打印最后一个字段,但无法同时打印日期/时间(2020-06-18 00:01:31)和文件名(ovou20200617_999_400280.unl).. !!! < / p>

cat pro_upl_*_trap_$YestodayDate*|grep 'CUploadProcessRemoteFile.cpp' |awk -F "/" '{print $19}'

任何提示/帮助将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:1)

不确定# ID CODE CODE_SUB # 1 A 45676 76 # 2 B 87898 NA # 3 B 89998 NA # 4 A 45688 88 # 5 A 45556 56 为何出现在每一行中,但是假设您有理由,CUploadProcessRemoteFile.cpp在使用{{1 }},也不需要grep来打开awk的输入文件:

cat

答案 1 :(得分:0)

您可以将awk与多个分隔符一起使用:

awk -F'[|/]' '{print $1, $NF}'