# Basic syntax:
grep -m 1 "pattern" input_file.txt
# Where -m is the maximum number of matching lines to return, i.e. stop
# reading the file after m matches
# Note, this is more efficient than piping to head because there you
# always read the whole file even if you're only looking for m matches
Just combine grep with head command for filtering only the first match as:
grep "match" | head -n 1 #Change 1 to not only match first but further matches