如何使用bash或awk在文件中执行关键字段查找?

如何使用bash或awk在文件中执行关键字段查找?,第1张

概述如何使用bash或awk在文件中执行关键字段查找

我是一个新手来shell脚本和awk。 任何人都可以build议一个更高效和优雅的解决scheme,我在下面做什么来执行两个文件之间的关键查找

两个input文件:

文件1 – 包含单个列键字段(server-metricname-minute):

key_column server026-AckDelayAverage-00:01:00 server026-AckDelayMax-00:01:00 server026-AckSent-00:01:00 server026-DigEnvValIDationLatestTime-00:01:00 server026-DigEnvValIDationTimeAverage-00:01:00

文件2 – 逗号分隔,包含关键字段和其他字段的数量

如何在下面的awk语句中减less一个pipe道

如何在shell中创build多个列的循环?

如何从C源文件中删除所有/ * * /注释?

从shell输出一个CSV文件

使用awk获取子string

key_column,host,date,minute,metricname,metric value server026-AckDelayAverage-00:01:00,server026,May 24 2016,00:01:00,AckDelayAverage,942 server026-AckDelayMax-00:01:00,AckDelayMax,5855 server026-AckSent-00:01:00,AckSent,49038

我的逻辑是:

Loop through file1 If key found in file2 print file1.key,file2.fIEld3,file2.fIEld6 to file3 else print file1.key + 'KEY_NOT_FOUND' text to file3 fi

所以file3输出应该在file1中的每个logging都有一行。

下面的代码似乎工作,但任何人都可以build议一个更高效和优雅的方法来实现这一目标?

while read key ; do metric_found=`grep $key file2` if [[ ! -z $metric_found ]] then echo ${metric_found} | awk -F "," '{print $1",$3,"$6}' else echo ${key},KEY_NOT_FOUND fi done < file1

基于示例数据的现有脚本示例输出:

server026-AckDelayAverage-00:01:00,49038 server026-DigEnvValIDationLatestTime-23:59:00,KEY_NOT_FOUND server026-DigEnvValIDationTimeAverage-23:59:00,KEY_NOT_FOUND

谢谢..

使用awkreplace正则Expression式模式

recursion地joinN个行

如果只有4个字符,awk才能输出?

如何使用AWK从Web日志中收集IP和用户代理信息?

AWK根据从第二个文件中select的标题从文件中提取列

尝试这个:

awk 'BEGIN{FS=OFS=","}NR==FNR{a[$1]=1;b[$1]=$3;c[$1]=$6;}NR>FNR{if (a[$1]) print $1,b[$1],c[$1]; else print $1,"KEY_NOT_FOUND";}' file2 file1 > file3

$ cat tst.awk BEGIN { FS=OFS="," } NR==FNR { file2[$1] = $3 OFS $6; next } FNR>1 { print $1,($1 in file2 ? file2[$1] : "KEY_NOT_FOUND") } $ awk -f tst.awk file2 file1 server026-AckDelayAverage-00:01:00,49038 server026-DigEnvValIDationLatestTime-00:01:00,KEY_NOT_FOUND server026-DigEnvValIDationTimeAverage-00:01:00,KEY_NOT_FOUND

总结

以上是内存溢出为你收集整理的如何使用bash或awk在文件中执行关键字段查找?全部内容,希望文章能够帮你解决如何使用bash或awk在文件中执行关键字段查找?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1156701.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存