我需要有关bash shell的帮助 我希望使用info.txt实时更新snmptrap.txt中的内容,例如result.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 info.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 :(得分: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
答案 1 :(得分:0)
这可能适合你(GNU sed):
sed -r 's#^([^;]*);(.*)#/\2/s/\\S+/\1/6#' file2 | sed -rf - file1
这会将第二个文件转换为sed脚本,用于转换第一个文件。
第二个文件的第二个字段用作查找,第二个文件的第一个字段用作第一个文件中第六个字段的替换。