IGNORECASE与awk的文件内比较

IGNORECASE与awk的文件内比较,awk,ignore-case,Awk,Ignore Case,这是我的密码: 'FNR==NR {a[$1 FS $2 FS $3 FS $4]++; next} !a[$1 FS $2 FS $3 FS $5]' comparegam.txt workstudyusers1.csv >noidea6.txt 它正在做我需要的事情,只是我需要忽略它。我曾尝试在不同的地方使用IGNORECASE=1,但我无法让它工作。它要么失败,给我零结果,要么一起忽略它。我尝试使用BEGIN[IGNORECASE=1},但没有成功 任何帮助都将不胜感激,我不知所措

这是我的密码:

'FNR==NR {a[$1 FS $2 FS $3 FS $4]++; next} !a[$1 FS $2 FS $3 FS $5]' comparegam.txt workstudyusers1.csv >noidea6.txt
它正在做我需要的事情,只是我需要忽略它。我曾尝试在不同的地方使用IGNORECASE=1,但我无法让它工作。它要么失败,给我零结果,要么一起忽略它。我尝试使用BEGIN[IGNORECASE=1},但没有成功

任何帮助都将不胜感激,我不知所措。我正在终端窗口中运行此操作,而不是使用bash脚本。这是最终目标

注意:输出必须包含大小写以匹配原始文件

下面是我在IGNORECASE中尝试过的确切代码:

awk -F, 'IGNORECASE=1 FNR==NR {a[$1 FS $2 FS $3 FS $4]++; next} !a[$1 FS $2 FS $3 FS $5]' comparegam.txt workstudyusers1.csv >noidea6.txt
awk -F, 'FNR==NR {IGNORECASE=1} {a[$1 FS $2 FS $3 FS $4]++; next} !a[$1 FS $2 FS $3 FS $5]' comparegam.txt workstudyusers1.csv >noidea6.txt
awk -F, '{IGNORECASE = 1} FNR==NR {a[$1 FS $2 FS $3 FS $4]++; next} !a[$1 FS $2 FS $3 FS $5]' comparegam.txt workstudyusers1.csv >noidea6.txt
awk -F, 'BEGIN {IGNORECASE = 1} FNR==NR {a[$1 FS $2 FS $3 FS $4]++; next} !a[$1 FS $2 FS $3 FS $5]' comparegam.txt workstudyusers1.csv >noidea6.txt
awk -F, 'FNR==NR {{IGNORECASE=1} a[$1 FS $2 FS $3 FS $4]++; next} !a[$1 FS $2 FS $3 FS $5]' comparegam.txt workstudyusers1.csv >noidea6.txt

以及各种迭代。

请尝试大写比较,而不是不区分大小写的比较。您使用的是gawk(GNU awk)吗?
IGNORECASE
是gawk特有的。你在标题中拼写为
IGNORECASE
;你确定你在代码中拼写正确吗。复制并粘贴不起作用的确切代码。我添加了我一直尝试的不同迭代,也修复了标题。tolower成功了,但我仍然想知道为什么IGNORECASE不起作用ing.I did awk man和IGNORECASE作为选项列出。请尝试大写比较,而不是不区分大小写的比较。是否使用gawk(GNU awk)?
IGNORECASE
是gawk特有的。你在标题中拼写为
IGNORECASE
;你确定你在代码中拼写正确吗。复制并粘贴不起作用的确切代码。我添加了我一直尝试的不同迭代,也修复了标题。tolower成功了,但我仍然想知道为什么IGNORECASE不起作用ing.I did awk man和IGNORECASE作为选项列出。请尝试大写比较,而不是不区分大小写的比较。是否使用gawk(GNU awk)?
IGNORECASE
是gawk特有的。你在标题中拼写为
IGNORECASE
;你确定你在代码中拼写正确吗。复制并粘贴不起作用的确切代码。我添加了我一直尝试的不同迭代,也修复了标题。tolower成功了,但我仍然想知道为什么IGNORECASE不起作用ing.I did awk man和IGNORECASE作为选项列出。请尝试大写比较,而不是不区分大小写的比较。是否使用gawk(GNU awk)?
IGNORECASE
是gawk特有的。你在标题中拼写为
IGNORECASE
;你确定你在代码中拼写正确吗。复制并粘贴不起作用的确切代码。我添加了我一直尝试的不同迭代,也修复了标题。tolower成功了,但我仍然想知道为什么IGNORECASE不起作用ing.I did awk man and IGNORECASE被列为一个选项。出于好奇,我注意到您将括号从[改为(约为1美元部分,具体需要或只是偏好?@moore1emu
()
与函数参数有关,但
[]
仍然在那里,用
tolower
函数的结果对数组进行索引。出于好奇,我注意到您将括号从[改为(大约为$1部分,具体需要或只是偏好?@moore1emu
()
围绕函数参数,但是
[]
仍然在那里,用
tolower
函数的结果对数组进行索引。出于好奇,我注意到您将括号从[改为(大约为$1部分,具体需要或只是偏好?@moore1emu
()
围绕函数参数,但是
[]
仍然在那里,用
tolower
函数的结果对数组进行索引。出于好奇,我注意到您将括号从[改为(大约为$1部分,具体需要或只是偏好?@moore1emu
()
围绕函数参数,但是
[]
仍然可以使用
tolower
函数的结果对数组进行索引。
'
  FNR==NR {
    a[tolower($1 FS $2 FS $3 FS $4)]++;
    next
  }
  !a[tolower($1 FS $2 FS $3 FS $5)]
' comparegam.txt workstudyusers1.csv >noidea6.txt