gpt4 book ai didi

Linux : How can I print line number and column number when values do not match for tab separated files using AWK in linux

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:35 25 4
gpt4 key购买 nike

比较文件 1 和文件 2 并打印行号。用于file2中存在的差异记录和列号。

在文件 1 中:

User_ID   First_name    Last_name   Address                       Postal_code 
User_1 fistname Lastname 35, Park Lake, California 32068
user2 Johnny Depp 32, Park Lake, California
user3 Tom Cruise 5322 Otter Lane Middleberge 32907
user4 Leonardo DiCaprio Half-Way Pond, Georgetown 1230
user5 Sylvester Stallone 6762,33 Ave N,St. Petersburg 33710
user6 Srleo Stallone 6762,33 Ave N,St. Petersburg 33700

在文件 2 中:

User_ID   First_name    Last_name   Address                       Postal_code     
User_1 fistname Lastname 35, Park Lake, California 32068
user2 Johnny Depp 32, NEW Street, California 96206
user30 Tom Cruise 5322 Otter Lane Middleberge 32907
user4 Leonardo DiCaprio' Half-Way Pond, Georgetown 00000
user5 Sylvester Stallone 6762,33 Ave N,St. Petersburg 33710
user7 Nicolas Cage 55010
user6 Srleo Stallone 6762,33 Ave N,St. Petersburg 33700

**预期结果:-

file2 的区别是行号后跟列号(值不匹配的地方)**

Line No. 2 COLUMN NO- 4,5    
Line No. 3 COLUMN NO-1
Line No. 4 COLUMN NO 3,5
Line No. 5 COLUNN NO 5
Line No. 6 COLUMN NO 1,2,3,4,5

注意:要比较的文件大小以 GB 为单位,文件以制表符分隔,并且有超过 400 个制表符分隔列。

我正在使用-

awk 'NR==FNR{Arr[$0]++;next}!($0 in Arr){print FNR}' file1 file2

但是,它给了我行号而不是列号

最佳答案

这应该可以,但是与您的预期结果不符

paste f1 f2 | 
awk -F'\t' 'NR==1 {n=NF/2}
{for(i=1;i<=n;i++)
if($i!=$(i+n))
{c=c s i; s=","}
if(c)
{print "Line No. " NR-1 " COLUMN NO " c;
c="";s=""}}'

Line No. 2 COLUMN NO 4,5
Line No. 3 COLUMN NO 1
Line No. 4 COLUMN NO 3,5
Line No. 6 COLUMN NO 1,2,3,4,5
Line No. 7 COLUMN NO 1,2,3,4,5

要么你没有逐行比较,要么遵循一些其他未成文的规范。

关于Linux : How can I print line number and column number when values do not match for tab separated files using AWK in linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42383402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com