Sponsored Content
Top Forums UNIX for Beginners Questions & Answers How to ignore Case with in COMM command? Post 302990203 by Don Cragun on Monday 23rd of January 2017 04:43:46 PM
Old 01-23-2017
As Jim said, comm needs both input files to be sorted. After case-shifting both of your sample input files to lowercase, they happen to be in sorted order. If that is not the case with your real data files, you will also need to sort them after shifting to lowercase.

I don't think you want the tr -s option. That suppresses repeated adjacent occurrences of the same character in the output. (For example:
Code:
echo HELLO | tr -s '[:upper:]' '[:lower:]'

would produce the output:
Code:
helo

note the LL in the input and the single l in the output.)

The process substitution feature Jim suggested is available in bash, some recent versions of ksh, and a few other shells; but it is not in the standards and is not available in many other shells. If you're using a shell that just supports POSIX standard features (and your input might need to be sorted), you could try something more like:
Code:
tr '[:upper:]' '[:lower:]' < x2.txt | sort > $$.2.txt
tr '[:upper:]' '[:lower:]' < x3.txt | sort > $$.3.txt
comm $$.[23].txt
rm -f $$.[23].txt

which creates copies of your input files that have been converted to lowercase and sorted, runs comm on the copies, and then removes the copies.
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. Shell Programming and Scripting

comm not working for this case. HELP!

I have two sorted files. newfile has records like: aaa|bbb|ccc||| ddd||eee|fff|| oldfile has records like: aaa|bbb|ccc| ggg||hhh|fff The output should like: ddd||eee|fff|| I use comm but it's not working for this case. comm -2 -3 newfile oldfile > difffile The difffile is the... (6 Replies)
Discussion started by: sslr
6 Replies

4. 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

5. 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

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. 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

8. 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

9. 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

10. Shell Programming and Scripting

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. toll Tax=पथ-कर Toll tax=राहदारी कर toll tax=टोल I want to treat all three instances of toll tax... (3 Replies)
Discussion started by: gimley
3 Replies
comm(1) 							   User Commands							   comm(1)

NAME
comm - select or reject lines common to two files SYNOPSIS
comm [-123] file1 file2 DESCRIPTION
The comm utility reads file1 and file2, which must be ordered in the current collating sequence, and produces three text columns as output: lines only in file1; lines only in file2; and lines in both files. If the input files were ordered according to the collating sequence of the current locale, the lines written will be in the collating sequence of the original lines. If not, the results are unspecified. OPTIONS
The following options are supported: -1 Suppresses the output column of lines unique to file1. -2 Suppresses the output column of lines unique to file2. -3 Suppresses the output column of lines duplicated in file1 and file2. OPERANDS
The following operands are supported: file1 A path name of the first file to be compared. If file1 is -, the standard input is used. file2 A path name of the second file to be compared. If file2 is -, the standard input is used. USAGE
See largefile(5) for the description of the behavior of comm when encountering files greater than or equal to 2 Gbyte ( 2**31 bytes). EXAMPLES
Example 1: Printing a list of utilities specified by files If file1, file2, and file3 each contain a sorted list of utilities, the command example% comm -23 file1 file2 | comm -23 - file3 prints a list of utilities in file1 not specified by either of the other files. The entry: example% comm -12 file1 file2 | comm -12 - file3 prints a list of utilities specified by all three files. And the entry: example% comm -12 file2 file3 | comm -23 -file1 prints a list of utilities specified by both file2 and file3, but not specified in file1. ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of comm: LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, and NLSPATH. EXIT STATUS
The following exit values are returned: 0 All input files were successfully output as specified. >0 An error occurred. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWesu | +-----------------------------+-----------------------------+ |CSI |enabled | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ SEE ALSO
cmp(1), diff(1), sort(1), uniq(1), attributes(5), environ(5), largefile(5), standards(5) SunOS 5.10 3 Mar 2004 comm(1)
All times are GMT -4. The time now is 03:59 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy