Skip to main content
1 of 3
Stéphane Chazelas
  • 584.9k
  • 96
  • 1.1k
  • 1.7k
find . -type f \( -name '*.jpg' -o -name '*.jpeg' -o -name '*.png' \
                  -o -name '*.html' \) -exec sh -c '
  for file do
    IFS= read -r line &&
       case $line in
         ("#!"*) printf "%s\n" "$file: $line"
       esac
  done' sh {} +

Or with GNU awk:

find . -type f \( -name '*.jpg' -o -name '*.jpeg' -o -name '*.png' \
                  -o -name '*.html' \) -exec awk '
    /^#!/ {print FILENAME ": " $0}; {nextfile}' {} +
Stéphane Chazelas
  • 584.9k
  • 96
  • 1.1k
  • 1.7k