我有3个文件,file1
是一个文本文件,file2
是一个csv文件而file3
是一个html文件,我需要一个bash脚本来执行以下操作:
将file1
的第一行与file2
的第二列(配置)进行比较,如果相等,请将行的内容复制到file3
中的现有空表
如果不相等,请转到第二列(config)file2
的第二行,如果相等,则将行的内容复制到file3
interface fa0/0
interface loopback 0
ip address 10.1.1.1 255.255.255.0
no shutdown
router OSPF 1
,, Network LAB - Final config - sample - table 1.1 - CSV - final config table,,,,,,,,
,,,,,,,,,,
,ID,Config,Config description,Config score,Hostname,Mode,Category,Subcategory,Interface,IP/Network Address (if applicable
,1,interface F0/0,Go to interface F0/0 configuration mode from global configuration mode,0%,R1,Global,Basic config,Int F0/0,F0/0,-
,2,ip address 10.1.1.1 255.255.255.0,Set IP address on interface F0/0,8%,R1,Int F0/0,Basic config,Int F0/0 - IP Address,F0/0,10.1.1.1 255.255.255.0
,3,no shutdown,Brings interface F0/0 UP,7%,R1,Int F0/0,Basic config,Int F0/0 - Brings UP,F0/0,-
<tr class="gwd-tr-rtto">
<td data-sheets-value="[null,2,"Config"]" class="gwd- td-gn3d">Config</td>
<td data-sheets-value="[null,2,"Config description"]" class="gwd-td-qwup">Config description</td>
<td data-sheets-value="[null,2,"Config score"]" class="gwd-td-d4iw">Config score</td>
<td data-sheets-value="[null,2,"Hostname"]" class="gwd-td-djzd">Hostname</td>
<td data-sheets-value="[null,2,"Mode"]" class="gwd-td-17wt">Mode</td>
<td data-sheets-value="[null,2,"Category"]" class="gwd-td-24v5">Category</td>
这是我到目前为止所拥有的,因为我没有编码它可能很乱的经验,我可能完全弄错了,需要改变所有这些,感谢你的帮助。
awk FS=\, OFS=\, '
BEGIN{t="Time , Network LAB"}
FNR==1 {next}
NR==FNR {a[$1];next}
{
if ($1 in a)
{$1="*"$1;t=t RS $0}
else
{s=s==""?$0:s RS $0}
}
END {print t RS s}'file2 file1
awk '{print $0 >> "file3" }
答案 0 :(得分:1)
您可以尝试:
awk 'NR==FNR {
a[$0]++
next
}
FNR>1{
if ($3 in a)
print $3
}' file1 FS=, file2
输出:
ip address 10.1.1.1 255.255.255.0