Wenn man z.B. bei seinem ansible playbooks am umbauen und aufräumen ist, steht nachher die Befürchtung, dass irgendwo noch Ausdrücke/Variablen vorkommen, welcher aber nicht mehr benötigt werden.
Also habe ich ChatGPT gefragt, mir eine Lösung dazu zu entwerfen und herausgekommen ist dieses schöne Shell Script. 😁
Falls deine Suchbegriffe in patterns.txt
stehen (ein Begriff pro Zeile), verwende:
patterns_file="patterns.txt"
search_dir="/pfad/zum/verzeichnis"
# Speichere alle Suchbegriffe in einer Variablen
mapfile -t patterns < "$patterns_file"
# Initialisiere eine Liste für nicht gefundene Begriffe
not_found=()
# Überprüfe jeden Begriff
for pattern in "${patterns[@]}"; do
if ! grep -r -q -F "$pattern" "$search_dir"; then
not_found+=("$pattern")
fi
done
# Ergebnisse anzeigen
if [ ${#not_found[@]} -eq 0 ]; then
echo "Alle Begriffe wurden in mindestens einer Datei gefunden. ✅"
else
echo "Diese Begriffe wurden in KEINER Datei gefunden: ❌"
printf "%s\n" "${not_found[@]}"
fi
Erklärung
- Lädt die Suchbegriffe aus
patterns.txt
in ein Bash-Array (mapfile -t patterns
). - Durchläuft jedes Suchmuster und prüft mit
grep -r -q -F "$pattern" "$search_dir"
, ob es vorkommt.-r
→ Rekursiv durchsuchen-q
→ Keine Ausgabe (wir prüfen nur den Rückgabewert)-F
→ Exakte Zeichenfolgen statt regulärer Ausdrücke
- Falls kein Treffer, wird der Begriff zur Liste
not_found[]
hinzugefügt. - Gibt am Ende alle Begriffe aus, die in keiner Datei vorkamen.