Merge strings with ignore case


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Merge strings with ignore case
# 1  
Old 01-06-2017
Merge strings with ignore case

I have a bi-lingual database of a large number of dictionaries. It so happens that in some a given string is in upper case and in others it is in lower case. An example will illustrate the issue.
Code:
toll Tax=पथ-कर
Toll tax=राहदारी कर
toll tax=टोल

I want to treat all three instances of
Code:
toll tax

as one and map them as under:
Code:
toll tax=पथ-कर,राहदारी कर,टोल

I have an awk script which merges all such mappings, but it fails on instances where lower and upper case are involved
I am giving the script below
Code:
#script to merge columns to rows if the LH string is identical
BEGIN{FS="="}
!a[$1]++ {printf RS $1 FS $2 ;next}{printf "," $2}

How do I modify the script such that it will ignore the cases mentioned above and merge all three to
Code:
toll tax=पथ-कर,राहदारी कर,टोल

I could convert the whole database to lower case but that is not feasible since some strings such as Acronyms need to be maintained in uppercase.
My operating system is Windows.
Many thanks for helping out and all good wishes for the New Year.
# 2  
Old 01-06-2017
Hello gimley,

As your haven't provided more sample Input_file, so it is tested with all permutations and combinations.
Code:
awk -F'=' 'FNR==NR{A[tolower($1)]=A[tolower($1)]?A[tolower($1)]","$NF:$NF;next} (tolower($1) in A){print A[tolower($1)];delete A[tolower($1)]}'  Input_file  Input_file

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 3  
Old 01-06-2017
How about awk's tolower()?
Code:
!a[tolower($1)]++ {printf RS $1 FS $2 ;next}

This User Gave Thanks to RudiC For This Post:
# 4  
Old 01-06-2017
Thanks to all who helped.
I slightly modified RudiC's script
Code:
#script to merge columns to rows if the LH string is identical
BEGIN{FS="="}
!a[tolower($1)]++ {printf RS $1 FS $2 ;next}{printf "," $2}

and it merged all three.
Many thanks to RavinderSingh13 for his help also. The solution he provided worked also
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to ignore Case with in COMM command?

Hi, How can i ignore case between 2 files in unix using COMM command. 2 input files are: -bash-4.1$ more x2.txt HELLO hi HI raj -bash-4.1$ more x3.txt hello hi raj COMM command: -bash-4.1$ comm x2.txt x3.txt hello HELLO hi (3 Replies)
Discussion started by: raju2016
3 Replies

2. Shell Programming and Scripting

Ignore case in awk while pattern searching

Hi , I have the file where i have to search for the pattern. The pattern may be lower case or upper case or camel case. Basically I want to ignore while searching the pattern in awk. awk '/error|warning/exception/' filename Please help me (3 Replies)
Discussion started by: arukuku
3 Replies

3. UNIX for Dummies Questions & Answers

Is there a way to ignore CAPS or case sensitivity?

If I'm using a program that is expecting certain filenames and directories to be all CAPS, isn't there a way to ignore this in linux/cshell scripting? I.e., similiar to ignoring spaces with " (i.e., directory is directory 1, can ignore by typing "directory 1".) ?? (2 Replies)
Discussion started by: rebazon
2 Replies

4. Shell Programming and Scripting

simple but challenging ignore case

Folks - I found this code on the forums to extract a paragraph for a matching pattern but I don't know how to make it ignore case. grep "-ip" is not an option for me as I am on SUSE LINUX. Thanks for ur help. I run this script as below: grep_para.ksh sqlstate < logfile "The end result... (2 Replies)
Discussion started by: beowulfkid
2 Replies

5. Shell Programming and Scripting

To ignore user input case.

hi, i will like to know whether awk command can ignore case? i written a script that will take in user input and search for data on the 1st field from a text file. echo -n "Title:" read title awk -F":" '$1~/'"$title"'/{print $0}' Filename read ans return ... (5 Replies)
Discussion started by: Cheranime
5 Replies

6. Shell Programming and Scripting

how to ignore case

Hi All, The means I use to ignore case, as an example is the following snippet: It should accept any oof the following y|Y|YES|Yes|n|N|NO|No echo "Enter Y/N to continue: " read choice; (3 Replies)
Discussion started by: raghur77
3 Replies

7. Programming

Ignore case in a test?

How do I ignore the case in an if condition..? EDIT: I put this in the wrong board...this is a linux script. if then echo "Same name." else echo "Different name." fi (1 Reply)
Discussion started by: Bandit390
1 Replies

8. Shell Programming and Scripting

How do I ignore one character in a case statement? PLEASE HELP!

Hello, I am new to this forums. I need help with shell, and ksh in particular. I have a case statement that does something if -k. So it looks like: case $arg in -k) PUT=y, SEND=1 Thats all good and dandy. But now I want to change it where whether or not the user puts -k or not, it will do... (2 Replies)
Discussion started by: cpunisher
2 Replies

9. Shell Programming and Scripting

Ignore case sensitive in Case Switch

In a Case switch, how to ignore case sensitive in the test: e.g. case "$field" in "TEST) action1;; *) action2;; esac How to go in action1 in case of $field = TEST , or Test , or test or .... without enumerating all possibilities... Thanks,... (1 Reply)
Discussion started by: annelisa
1 Replies

10. Shell Programming and Scripting

Ignore Case in Shell

Hi New to this Unix dot com. I would like to know how i can ignore the case in filename which is getting as user directoty to shell script. For Ex: Source (/aa/bb/patch/) Directory may contains more than 1 files as like 1. aa.csv or Aa.csv or AA.csv or aa.CSV 2. bb.csv 3. ... (3 Replies)
Discussion started by: AAH
3 Replies
Login or Register to Ask a Question

Featured Tech Videos