2014-07-22 3 views
0

Вот мой код:IGNORECASE в сравнении файлов с AWK

'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. Я попытался использовать 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 

и различные итерации этого.

+1

Вместо сравнения нечувствительности к регистру, попробуйте сравнение в верхнем регистре. – alvits

+1

Вы используете gawk (GNU awk)? 'IGNORECASE' специфичен для gawk. Вы назвали его «IGNORCASE» в названии; вы уверены, что правильно это указали в своем коде. Скопируйте и вставьте точный код, который не работает. –

+0

Я добавил различные итерации, которые я пытался, также исправил заголовок. работала, но мне все еще нравится знать, почему IGNORECASE не работает. Я сделал awk man и IGNORECASE указан как опция. – moore1emu

ответ

3
' 
    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 
+0

+1 для портативного решения. –

+0

Работник работал, спасибо – moore1emu

+0

Из любопытства Я заметил, что вы изменили скобки от [до (вокруг части 1 $, конкретной потребности или просто предпочтения?) – moore1emu