How do I compare two files with a shell script?
Given two files, I want to write a shell script that reads each line from file1 and checks if it is there in file2. If a line is not found it should output two files are different and exit. The files can contain words numbers or anything. For example :
file1 :
Hi!
1234
5678
1111
hello
file2:
1111
5678
1234
Hi!
hello
In this case two files should be equal. if file2 has "hello!!!" instead of "hello" then the files are different. I'm using bash script. How can I do this. It is not important that I need to do it in a nested loop but that's what I thought is the only way. Thanks for your help.
In bash:
diff --brief <(sort file1) <(sort file2)
diff
sets its exit status to indicate if the files are the same or not. The exit status is accessible in the special variable $?
. You can expand on Ignacio's answer this way:
diff --brief <(sort file1) <(sort file2) >/dev/null
comp_value=$?
if [ $comp_value -eq 1 ]
then
echo "do something because they're different"
else
echo "do something because they're identical"
fi