Minus of 2 files -- Please help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Minus of 2 files -- Please help
# 1  
Old 08-30-2006
MySQL Minus of 2 files -- Please help

Hello people,

awk '{print $0}' input1.txt input2.txt |sort -u
Will give the union of the 2 files. Similarly what is command to get just the diff data (i.e minus) of the 2 files. Can I use the "diff" command to get just the diff data.
Please let me know.

Regards,
Tipsy.
# 2  
Old 08-30-2006
Code:
comm file1 file2

Returns three columns:
Column 1: Lines that appear only in file1,
Column 2: Lines that appear only in file2,
Column 3: Lines that appear in both files.

man comm for more info.
# 3  
Old 08-30-2006
Code:
awk '
      FILENAME=="file1" { arr[$0]++}
      FILENAME=="file2" { if (arr[$0]==0) {print $0} }
      ' file1 file2 > file2minusfile1.txt

will give file2 minus file1, i.e., data in file2 that does not match anything in file1

Last edited by jim mcnamara; 09-01-2006 at 04:53 PM..
This User Gave Thanks to jim mcnamara For This Post:
# 4  
Old 09-01-2006
Hi Jim,
Thanks for your reply. I am getting the following error when I tried the command. Are we missing something in the syntax ?

awk: syntax error near line 2
awk: illegal statement near line 2
awk: syntax error near line 4
awk: bailing out near line 4

Regards,
Tipsy.
# 5  
Old 09-01-2006
Quote:
Originally Posted by tipsy
Hi Jim,
Thanks for your reply. I am getting the following error when I tried the command. Are we missing something in the syntax ?

awk: syntax error near line 2
awk: illegal statement near line 2
awk: syntax error near line 4
awk: bailing out near line 4

Regards,
Tipsy.
I made a change to the source above. my bad - sorry.
# 6  
Old 05-13-2009
Can the code be changed in such a way that file1, file2 and file2minusfile1.txt are variables?
# 7  
Old 05-13-2009
Code:
file1=somefile.txt
file2=anotherfile.txt
resultfile=somefile_minus_anotherfile.txt

awk  -v file1="$file1" -v file2="$file2"
      FILENAME==file1 { arr[$0]++}
      FILENAME==file2 { if (arr[$0]==0) {print $0} }
      ' "$file1" "$file2" > "$resultfile"

This User Gave Thanks to jim mcnamara For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need to minus one day from a date given

Hello Folks, I have a variable output holding date as below - output = "20141220" I need to extract a day out of it and store it in another variable i.e. something similar to below - output1=20141219" and if the month is changing i.e. date in on 31st or 1st it should be taken care of "date... (5 Replies)
Discussion started by: ektubbe
5 Replies

2. Shell Programming and Scripting

How to get a time minus 60 minutes?

Hello, date --date '-60 min ago' +'%Y-%m-%d %H:%M:%S,%3N' Above command gives the date and time minus 60 minutes but the problem i am facing is, i do not want to hardcode the value 60 it is stored in a variable var=60 now if i run below command , i get error date --date '-$var min... (3 Replies)
Discussion started by: Ramneekgupta91
3 Replies

3. Shell Programming and Scripting

Date minus 1 day

Hi the below code is failing i am trying to generate do the following: 2014-10-22 11:26:00 (Substract 24 hrs) should produce 2014-10-21 11:26:00 I need the same formatting below because that gets inputted into code for an... (4 Replies)
Discussion started by: Samuel12
4 Replies

4. UNIX for Dummies Questions & Answers

Minus 5 minutes

Hi, I need to subtract 5 minutes from the date. Example $date +"%Y-%m-%d-%H.%M.%S" displays 2014-06-26-06.06.38 I want to show it as 2014-06-26-06.01.38 (5 mins are subtracted from date) Any help would be appreciated. I am currently on AIX version 6.1 -Vrushank (10 Replies)
Discussion started by: vrupatel
10 Replies

5. Shell Programming and Scripting

Minus minus to plus

Hi there, I have a problem with arithmetic ops in awk. Here is what my script does right now. while read nr val ; do case $nr in 400) awk '$2~/eigenvectors/ {print $NF-'$val'};' input.txt >> output.txt;; esac done < frames.txtI have a file named frames.txt with two columns (nr and... (2 Replies)
Discussion started by: tobias1234
2 Replies

6. Solaris

How to show time minus 60 minutes?

In Redhat it is easy.... date --date="60 minutes ago" How do you do this in Solaris? I got creative and got the epoch time but had problems.. EPOCHTIME=`truss date 2>&1 | grep "time()" | awk '{print $3 - 900}'` echo $EPOCHTIME TIME=`perl -e 'print scalar(localtime("$EPOCHTIME")),... (5 Replies)
Discussion started by: s ladd
5 Replies

7. Shell Programming and Scripting

Minus of files

File 1 contains data : CALL_ID SOR_ID SEG_SEQ_NUM CHK_PNT_MENU_TYPE_CD PTNR_ID ACTVN_RTRN_CD PRIM_ACTVN_DCLN_REAS_CD SCNDRY_ACTVN_DCLN_REAS_CD ACTVN_SCCS_IND CARD_ACTVTD_IND MAX_ACTVN_FAILD_ATMP_IND EDW_PUBLN_ID File 2 contains data: PRIM_ACTVN_DCLN_REAS_CD... (3 Replies)
Discussion started by: ysvsr1
3 Replies

8. UNIX for Dummies Questions & Answers

Rename file-name minus one?

I need to rename a directory full of files named like: page_001.jpg page_002.jpg page_003.jpg to the file name minus one. Meaning instead of page_001.jpg that file becomes page_000.jpg so: page_001.jpg => page_000.jpg page_002.jpg => page_001.jpg page_003.jpg => page_002.jpg I was... (3 Replies)
Discussion started by: RacerX
3 Replies

9. UNIX for Dummies Questions & Answers

minus col1 and col2

my file looks like this: 101928 101943 101928 101944 101929 101943 101929 101943 101929 102044 i want to insert bc to get answer like this: 101928 101943 000015 101928 101944 000016 101929 101943 000013 101929 101943 000014 101929 102044 000115 total 000173 my... (3 Replies)
Discussion started by: tjmannonline
3 Replies

10. UNIX for Dummies Questions & Answers

minus sign

why a minus sign is put for options in unix commands suggestions plz (2 Replies)
Discussion started by: trichyselva
2 Replies
Login or Register to Ask a Question