【发布时间】:2014-07-22 18:11:38
【问题描述】:
这是我的代码:
'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。您在标题中将其拼写为IGNORCASE;你确定你在代码中拼写正确吗?复制并粘贴不起作用的确切代码。 -
我添加了我一直在尝试的不同迭代,还修复了标题。下层工作了,但我仍然想知道为什么 IGNORECASE 不起作用。我做了 awk man 并且 IGNORECASE 被列为一个选项。
标签: awk ignore-case