M.: Linux:alle Dateien listen, die einen bestimmten String enthalten

Beitrag lesen

Mahlzeit,

ich hab mir da vor öanger zeit ein Script gezimmert, was ich immer noch nutze. Geht zwar auch anders, aber funktioniert.

  
#!/bin/sh  
  
if [ $# -lt 2 ]; then  
        echo "Usage: search PATH STRING [FILES] [IGNORE[|IGONRE[|IGNORE ... ]]]"  
        exit  
fi  
  
if [ "$3" ]; then  
        FILE="$3"  
else  
        FILE="*"  
fi  
  
if [ "$4" ]; then  
        find $1 -type f -iname "$FILE" -exec grep -E -n "$2" -H '{}' \; | cut -d':' -f1-2 | egrep -v "$4"  
else  
        find $1 -type f -iname "$FILE" -exec grep -E -n "$2" -H '{}' \; | cut -d':' -f1-2  
fi  

Das Script liegt unter dem namen "search" im PATH und zeigt zu den Suchergebnissen die Zeilennummer zum Dateinamen an.
FILES kann Wildcards enthalten, muss dann aber in Quotes stehen.

--
42