GAWK case insensitive comparison


 
Thread Tools Search this Thread
Special Forums Windows & DOS: Issues & Discussions GAWK case insensitive comparison
# 1  
Old 05-17-2012
Java GAWK case insensitive comparison

Hi Smilie
I'm working on Windows, with gawk,
and let's say I have two files to compare.
searching for a script to do a text comparison I came across to this line:

Code:
gawk "{if(NR==FNR){A[$0]}else{B[$0]}}END{for(x in A){if(!(x in B))print x>\"1not2.txt\"}for(x in B){if(!(x in A))print x>\"2not1.txt\"}}" x1 x2

Which works perfectly for what I need, but I want to do a case insensitive comparison,

File1:
Code:
ABCD

File2:
Code:
abcd

So that shouldn't bring any difference, I tried to use the IGNORECASE=1 option but I am too new to GAWK, I would appreciate if anyone could help me,

Thanks in advance, Smilie

Last edited by Scrutinizer; 05-17-2012 at 04:05 AM.. Reason: code tags
# 2  
Old 05-17-2012
how did you use ?

Code:
 
gawk -v IGNORECASE=1 "....bla...bla..."

# 3  
Old 05-17-2012
I tried many ways,
Code:
gawk -v IGNORECASE=1 "{if(NR==FNR){A[$0]}else{B[$0]}}END{for(x in A){if(!(x in B))print x>\"1not2.txt\"}for(x in B){if(!(x in A))print x>\"2not1.txt\"}}" x1 x2

just creates both 1not2.txt and 2not1.txt
Code:
gawk -v IGNORECASE=1 "{if(NR==FNR){A[$0]}else{B[$0]}}END{for(x in A){if(!(x in B))print x>\"1not2.txt\"}for(x in B){if(!(x in A))print x>\"2not1.txt\"}}" x1 x2
type 1not2.txt
ABCD
type 2not1.txt
abcd


Last edited by Scrutinizer; 05-17-2012 at 04:05 AM.. Reason: code tags
# 4  
Old 05-17-2012
Moved to windows forum...
# 5  
Old 05-17-2012
The value of IGNORECASE does not affect array subscripting.

You should use something like this:

Code:
{
  _0 = tolower($0)
  if (NR == FNR)
    A[_0]
  else 
    B[_0]
  }

This User Gave Thanks to radoulov For This Post:
# 6  
Old 05-17-2012
Thank you, I'm afraid it's not working or I'm doing something wrong, I get this when trying to run:

Code:
gawk " {  _0 = tolower($0)  if (NR == FNR)   A[_0]  else     B[_0]  }END{for(x in A){if(!(x in B))print x>\"1not2.txt\"}for(x in B){if(!(x in A))print x>\"2not1.txt\"}}" x1 x2
 
gawk:  {  _0 = tolower($0)  if (NR == FNR)   A[_0]  else     B[_0]  }END{for(x in A){if(!(x in B))print x>"1not2.txt"}for(x in B){if(!(x in A))print x>"2not1.txt"}}
gawk:                       ^ syntax error
gawk:  {  _0 = tolower($0)  if (NR == FNR)   A[_0]  else     B[_0]  }END{for(x in A){if(!(x in B))print x>"1not2.txt"}for(x in B){if(!(x in A))print x>"2not1.txt"}}
gawk:                                               ^ syntax error
errcount: 2

# 7  
Old 05-17-2012
You may notice that my code was formatted differently (the new lines matter).
If you want to write it on a single line, you'll need to use a semi-colon:

Code:
_0 = tolower($0);  if (NR == FNR)   A[_0];  else     B[_0] ...

I'd recommend using a script file, instead of supplying the code
on the command line (especially when using Windows ...).
This User Gave Thanks to radoulov For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Making SED case insensitive

Dears, In the below string, please let me know how to make the sed search case-incensitive. I have more such lines in my script instead of let me know any other easier option. sed -n '/dn: MSISDN=/,/^\s*$/p' full.ldif > temp ; sed -n... (4 Replies)
Discussion started by: Kamesh G
4 Replies

2. UNIX for Dummies Questions & Answers

Using FIND with case insensitive search

I am using HP-Unix B.11.31. Question: How to do the case insensitive search using FIND? Example: I would like list the files with extension of *.SQL & *.sql. When I try with command find . -type f -name *.sql, it does not lists file with *.SQL. (5 Replies)
Discussion started by: Siva SQL
5 Replies

3. Shell Programming and Scripting

Case insensitive comparison of strings

Hi All, In one shell script I have In variable "i" I am getting a full path of a file. Now I want to compare something like -- upper(*Nav*)) I dont want to do like below because in each CASE statement I doing so many operations. Please guide me. Thanks in advance... (4 Replies)
Discussion started by: vishalaksha
4 Replies

4. Shell Programming and Scripting

Case Insensitive search

Hey , i am trying to do a search for the certain books , and im trying to make it case insensitive. what i have come up with so far is this : Database.txt RETARDED MONKEY:RACHEAL ABRAHAML:30:30:20 GOLD:FATIN:23.20:12:3 STUPID:JERLYN:20:40:3 echo -n "Title: " read Title echo -n... (3 Replies)
Discussion started by: gregarion
3 Replies

5. Shell Programming and Scripting

Case insensitive check for directory

Hi, Im still new to scripting and this forum and could so with a little help I understand: if ; then good else bad fi but how do I do the same check but ignore the case of <dir2>? Many thanks! Matt (1 Reply)
Discussion started by: mjwoodford
1 Replies

6. Shell Programming and Scripting

case-insensitive search with AWK

Hi All, How we can perform case-insensitive search with AWK.:rolleyes: regards, Sam (11 Replies)
Discussion started by: sam25
11 Replies

7. Shell Programming and Scripting

case-insensitive if on substring

I'd like to print a line if a substring is matched in a case insensitive manner something like do a case insensitive search for ABCD as a substring: awk '{ if (substr($1,1,4) == "") print $1 }' infile > outfile I'm not certain how to make the syntax work??? Thanks (4 Replies)
Discussion started by: dcfargo
4 Replies

8. Shell Programming and Scripting

case insensitive

hi everyone, I need to do the following thing in a case insesitive mode sed 's/work/job/g' filename since work could appear in different form as Work WORK WorK wORK,.... I was wondering if i could do a case insensitive search of a word. thanks in advance, :) (4 Replies)
Discussion started by: ROOZ
4 Replies

9. Shell Programming and Scripting

awk case-insensitive

can I tell awk to be case insensitive for one operation without setting the ignorecase value ? thanks, Steffen (7 Replies)
Discussion started by: forever_49ers
7 Replies

10. UNIX for Dummies Questions & Answers

case insensitive locate

How can I do a case insensitive locate? (3 Replies)
Discussion started by: davis.ml
3 Replies
Login or Register to Ask a Question