我有两个包含数千行的文件。每个文件中的第一列都填充了IP地址。我想合并这两个文件,保留两个文件中的所有列,写入第三个文件。我还想在文件中添加一个标题。为了使它更难......如果文件1中的IP在文件2中,那么只需合并这些行,如果没有那么合并行并添加一个新的列,其中包含“添加”,但如果文件2中的IP确实如此不匹配文件1然后将“删除”添加到新列。
文件1扫描仪输出
Column 1 Column 2 Column 3 column 4
10.1.10.5 nuts.com 2214.53 9/19/2014
10.1.10.8 sites.net 7233.55 10/24/2010
10.1.25.6 7611.76 1/24/2010
10.1.25.7 nobb.com 000.00 9/19/2010
文件2内部ip列表
Column 1 Column 2
10.1.10.2 001 T & R
10.1.10.3 001 T & R
10.1.25.6 022 office
10.1.25.7 022 office
期望的输出
档案3
Column 1 Column 2 Column 3 column 4 column 5 column 6
10.1.10.2 001 T & R add
10.1.10.3 001 T & R add
10.1.10.5 nuts.com 2214.53 9/19/2014 delete
10.1.10.8 sites.net 7233.55 10/24/2010 delete
10.1.25.6 7611.76 1/24/2010 022 office
10.1.25.7 nobb.com 000.00 9/19/2010 022 office
我已经达到了这个
awk -F, 'NR==FNR{a[$1]=$2;next} !($1 in a) {$5="Delete"}1 ' OFS="," ipinput.csv scaninput.csv
但我似乎无法通过添加的列列出所有列。
答案 0 :(得分:0)
以下awk脚本可以帮助您
awk 'BEGIN{FS=OFS="|"} NR==FNR{ip[$1]=$2"|"$3"|"$4} NR!=FNR{if ( $1 in ip) { print $1,ip[$1],$2,"null"; delete ip[$1];} else print $1,"null|null|null",$2,"add" } END{for ( i in ip ) print i, ip[i],"delete" } '
将输出显示为
10.1.10.2 |null|null|null| 001 T & R|add
10.1.10.3 |null|null|null| 001 T & R|add
10.1.25.6 | null field | 7611.76 | 1/24/2010| 022 office|null
10.1.25.7 | nobb.com | 000.00 | 9/19/2010| 022 office|null
10.1.10.5 | nuts.com | 2214.53 |9/19/2014|delete
10.1.10.8 | sites.net | 7233.55 |10/24/2010|delete
答案 1 :(得分:0)
awk 'BEGIN{FS=OFS=",";print "IP Address","HostName","Vuln Score","Date","Department","Status";} NR==FNR{ip[$1]=$2","$3","$4} NR!=FNR{if ($1 in ip) { print $1,ip[$1],$2; delete ip[$1];} else print $1,"\t","\t","\t",$2,"add"; delete ip[$1];} END{for (i in ip) print i,ip[i],"\t","delete"} ' scanoutput.csv ipoutput.csv > test3.csv
使用nu11p01n73R中的一个很好的例子,我修改了一下以获得我需要的东西。此外,我想在网站上获取它以防万一它可以帮助其他人。再次感谢。
输出
IP Address HostName Vuln Score Date Department Status
10.1.10.2 001 T & R add
10.1.10.3 001 T & R add
10.1.25.6 7611.76 1/24/2010 022 office
10.1.25.7 nobb.com 000.00 9/19/2010 022 office
10.1.10.5 nuts.com 2214.53 9/19/2014 delete
10.1.10.8 sites.net 7233.55 10/24/2010 delete