请求实现从日志文件中查找含ATV前缀的特定字符串
嘿,我来给你几个实用的命令行方法,帮你从日志里精准提取以ATV为前缀的完整字符串:
方法1:用
grep直接匹配提取 这是最简单直接的方式,用grep的-o参数只输出匹配到的内容,配合正则表达式定位目标字符串:
grep -o "ATV[^ ]*" your_log_file.log
解释一下:
-o:让grep只输出匹配到的部分,而不是整行ATV[^ ]*:正则表达式,ATV是前缀,[^ ]*表示匹配任意非空格的字符(因为日志里目标字符串和前面的时间用空格分隔),这样就能精准揪出ATV_1816_CNL啦。
方法2:用
awk灵活定位字段 如果日志格式有变化,awk的字段遍历方式会更灵活,能适配更多场景:
awk '{for(i=1;i<=NF;i++) if($i ~ /^ATV/) print $i}' your_log_file.log
解释一下:
NF代表当前行的总字段数,我们循环遍历每一个字段$i ~ /^ATV/:判断第i个字段是否以ATV开头- 一旦找到符合条件的字段,就直接打印它
验证示例
用你给出的日志内容:
Thu 04/19/2018 22:37:58.51 EV_MIO_IDC_WW1815
Thu 04/19/2018 22:11:26.69 ATV_1816_CNL
运行上面任意一个命令,都会输出:
ATV_1816_CNL
内容的提问来源于stack exchange,提问作者user3743367
相关产品推荐
相关产品推荐

