Say we have two files: a.txt and b.txt. Each file has multiple lines of text.
How do I write a shell script to check if all of the content of a.txt exists in b.txt?
Thx for the hints guys, i didn't noticed -q will output 0 if successfully matched.
I end up with:
if grep a.txt -q -f b.txt ; then
else
fi
try grep
cat b.txt|grep -f a.txt
                        Here is a script that will do what what you are describing:
run: sh SCRIPT.sh a.txt b.txt
# USAGE:   sh SCRIPT.sh TEST_FILE CHECK_FILE
TEST_FILE=$1
CHECK_FILE=$2
## for each line in TEST_FILE
while read line ; do
    ## check if line exist in CHECK_FILE; then assign result to variable
    X=$(grep "^${line}$" ${CHECK_FILE})
    ## if variable is blank (meaning TEST_FILE line not found in CHECK_FILE)
    ## print 'false' and exit
    if [[ -z $X ]] ; then
        echo "false"
        exit
    fi
done < ${TEST_FILE}
## if script does not exit after going through each line in TEST_FILE,
## then script will print true
echo "true"
Assumptions:
Using grep
grep -f a.txt b.txt
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With