例如,文件1awk比较两个文件中的列,并在文件1中未显示文件时打印文件2列
"ACCOUNT_ID","CTN","NAME","GATEWAY_GUID","DEVICE_GUID","CATALOG_ID","FW_VERSION","DATE_CREATED","STATUS_ID","LOCATION_CODE","BAN","Market_Area","State","IMEI","HW_MODEL"
"306875",="9404653975","14-052917 14-052917","313A0B72E3E440DD8687BD681E55FB03","0",="000010000010004","FW: 1.04.122, JVM: Oracle Corporation 1.7.0_72-ea, OS: Linux 2.6.33.5","06/24/2014 14:32:38","0",="0003013034",="177046772949","DLS","TX",="351612051721824","Cisco DLC-100"
"306875",="9404653975","14-052917 14-052917","7EED6EE61F0949EE99554D4D4F09E4FE","ACFF000001",="000010901000004","1.2.14","06/24/2014 21:28:17","0",="",="177046772949","DLS","TX",="351612051721824",""
"306875",="9404653975","14-052917 14-052917","D57DAE988A1C482EA3217312EDC7466E ","ACFF010904",="000010907000004","","12/16/2015 23:39:21","0",="",="177046772949","DLS","TX",="351612051721824",""
文件2
account,ban,ctn,first_name,last_name,device_gateway_guid,device_id,device_cat_id,IMEI,device_fw_vrsn,date_created,device_status,subscription_created,subscription_name,subscription_market,date
DL!813269 , 418069632891 , undefined , MUHAMMAD , ANJUM , 313A0B72E3E440DD8687BD681E55FB03, ACFF010904 , 00010907000004 , 351612054025777 , , 2015-12-18 19:45:31 , 0 , undefined , [object Object] , WAS , undefined
DL!782477 , 523266997720 , undefined , SAM , MAURER , 7EED6EE61F0949EE99554D4D4F09E4FE , 0 , 00010000010004 , 351612053801194 , FW: 1.04.122, JVM: Oracle Corporation 1.7.0_72-ea, OS: Linux 2.6.33.5 , 2015-12-18 19:02:27 , 0 , undefined , [object Object] , FLP , 2015-07-29 09:07:22
DL!926875 , 578172109430 , undefined , TRACY , BUSH , D57DAE988A1C482EA3217312EDC7466E , 0 , 00010000010004 , 351612054481798 , FW: 1.04.122, JVM: Oracle Corporation 1.7.0_72-ea, OS: Linux 2.6.33.5 , 2016-01-23 16:09:21 , 0 , undefined , [object Object] , GLF , 2015-11-06 02:26:31
"306875",="9404653975","14-052917 14-052917","313A0B72E3E440DD8687BD681E55FB03","0",="313A0B72E3E440DD8687BD681E55FB03","FW: 1.04.122, JVM: Oracle Corporation 1.7.0_72-ea, OS: Linux 2.6.33.5","06/24/2014 14:32:38","0",="0003013034",="177046772949","DLS","TX",="351612051721824","Cisco DLC-100"
我想将文件1的 “GATEWAY_GUID” 栏目与文件2的device_gateway_guid列比较。输出应该是file1中没有看到的file2的所有记录。例如:如果文件1有10条记录,文件2有5000条记录,其中5条与文件1相同。那么我的输出文件应该显示文件1中没有看到的5个列值,这在file2中是看不到的。
到目前为止,我尝试了下面的脚本,但没用。任何帮助赞赏。
awk 'NR==FNR{c[$6]++;next};c[$4] == 0' s2_1.csv s1_1.csv > compares1s2.csv
请就如何创建一个MCVE([MCVE])读了。你的每个文件中有20列左右(猜测 - 我没有计算过),可以在你的例子中省略。这会让我们更容易看到发生了什么事情,并且会让您更容易地看到发生了什么。你需要最终毕业到全尺寸的文件,但你可以让它在一个更简单的系统上工作。 –
显示的命令行中的一个问题是,您没有将字段分隔符设置为逗号('-F,'会解决这个问题)。这是否搞砸了一切?您是否尝试打印您正在阅读的任何数据 - 例如“NR == FNR”段中的$ 6的值?我也不相信段落之间的' - '可能是好的,但我肯定不会把它放在那里。 –
您还有许多以'='符号开头的字段,例如'...,=“000010000010004”,...'。这意味着完整的CSV解析器会将该字段视为包含该“=”符号以及两个双引号(以及两者之间的数字)。这是奇怪的格式,但它出现多次;这不仅仅是一次性的事故。 –