2015-10-07 67 views
-1

我需要关于bash shell的帮助 我希望使用info.txt实时更改snmptrap.txt中的内容,例如result.txt。如何更改txt文件实时

内容添加实时在线的snmptrap.txt结束,所以我想上的Result.txt添加更改内容

smtptrap.txt:

2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello1 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello2 hello2 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello3 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello4 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello5 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test1 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test2 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test3 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test4 hello2 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test5 hello2 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello1 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello2 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello3 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello4 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello5 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test1 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test2 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test3 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test4 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test5 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello1 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello2 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello3 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello4 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 hello5 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test1 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test2 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test3 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test4 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 10.1 test5 AAA05000 

我想改变匹配使用info.txt 信息.TXT:

100.300;AAA05056 
100.200;AAA05010 
100.100;AAA05000 

的Result.txt应该是这样的:

2015/10/07 "General" 10.2 - ZBXTRAP 100.300 hello1 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 100.300 hello2 hello2 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 100.300 hello3 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 100.300 hello4 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 100.300 hello5 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 100.300 test1 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 100.300 test2 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 100.300 test3 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 100.300 test4 hello2 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 100.300 test5 hello2 AAA05056 
2015/10/07 "General" 10.2 - ZBXTRAP 100.200 hello1 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 100.200 hello2 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 100.200 hello3 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 100.200 hello4 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 100.200 hello5 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 100.200 test1 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 100.200 test2 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 100.200 test3 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 100.200 test4 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 100.200 test5 AAA05010 
2015/10/07 "General" 10.2 - ZBXTRAP 100.100 hello1 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 100.100 hello2 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 100.100 hello3 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 100.100 hello4 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 100.100 hello5 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 100.100 test1 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 100.100 test2 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 100.100 test3 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 100.100 test4 AAA05000 
2015/10/07 "General" 10.2 - ZBXTRAP 100.100 test5 AAA05000 
+0

我想你换了AAA05000与AAA05056 – karakfa

回答

0

根据你的榜样

$ awk -F"[; ]" 'NR==FNR{a[$2]=$1;next} $9 in a{$7=a[$9]}1' file2 file1  

将做的工作,但你的输出不符合规定,请检查映射。

捕获输入文件更新的一种方法是使用tail -f。例如。

$ awk ... file2 <(tail -f file1) >> output & 

将启动一个后台进程。您可以通过

$ tail -f output 
+0

谢谢。和内容添加snmptrap.txt实时行结束,所以我想在result.txt添加更改内容。你能帮助吗? – ZXC

+0

实时什么意思? – karakfa

+0

每秒添加内容新行结束snmptrap.txt文件。 – ZXC

0

该监控输出更新可能为你工作(GNU SED):

sed -r 's#^([^;]*);(.*)#/\2/s/\\S+/\1/6#' file2 | sed -rf - file1 

这些将第二个文件到被用于转化的第一个文件sed脚本。

第二个文件的第二个字段用作查找,第二个文件的第一个字段用作第一个文件中第六个字段的替换。