我有两个文件。
文件1--这是带有|的sql generate文件分隔符
sabari|27|22-12-1990|CHENNAI|
Siva|29|13-11-1989|CHENNAI|
文件2 - 我创建了硬核文件
Sabari|-|-|-|-|
Siva|-|-|-|-|
Ravi|-|-|-|-|
Bali|-|-|-|-|
如果值不在f1中,我想比较File-1中的值并将其放在File-1中。
Desired Out put
sabari|27|22-12-1990|CHENNAI|
Siva|29|13-11-1989|CHENNAI|
Ravi|-|-|-|-|
Bali|-|-|-|-|
有人可以帮助我/
答案 0 :(得分:0)
我愿意:
awk '{k=tolower($1)}NR==FNR{a[k]=$0;next} k in a{$0=a[k]}1' FS=\| file1 file2
对第一个文件进行传递,将所有内容存储在第一个条目的内存中。然后传递第二个文件,检查第一个文件中是否给出了该行,如果看到该行,则打印该文件中的行。 " tolower"只是让比较不区分大小。
也许它更清晰地写成:
awk '{k=tolower($1)}NR==FNR{a[k]=$0;next}{print k in a ? a[k] : $0}' FS=\| file1 file2
NR == FNR技术是从第一个输入文件预加载数据的常用方法。