Ich brauche Hilfe bei einem Bash-Skript, das durch ein Verzeichnis und seine Unterverzeichnisse läuft und nach Dateien mit einer bestimmten Erweiterung sucht (z.B. .txt). Für jede gefundene Datei sollte das Skript das Datum extrahieren, an dem sie zuletzt geändert wurde, und ein neues Verzeichnis mit diesem Datum erstellen (falls es noch nicht existiert). Das Skript sollte dann die Datei in das Verzeichnis mit dem Änderungsdatum verschieben. Kannst du mir helfen, dieses Skript in Bash zu schreiben?
Natürlich! Hier ist ein Bash-Skript, das die von dir beschriebene Funktionalität implementiert:

```bash
#!/bin/bash

# gib das zu durchsuchende Verzeichnis und die zu suchende Dateierweiterung an
search_dir="./"
file_ext=".txt"

# durchlaufe alle Dateien im Suchverzeichnis und seinen Unterverzeichnissen
for file in $(find $search_dir -type f -name "*$file_ext"); do
  # extrahiere das Datum, an dem die Datei zuletzt geändert wurde
  file_date=$(date -r "$file" +%Y-%m-%d)
  
  # erstelle ein Verzeichnis mit dem Änderungsdatum, falls es noch nicht existiert
  if [ ! -d "$file_date" ]; then
    mkdir "$file_date"
  fi
  
  # verschiebe die Datei in das Verzeichnis mit dem Änderungsdatum
  mv "$file" "$file_date"
done
```

Dieses Skript verwendet den Befehl find, um das angegebene Verzeichnis (search_dir) und seine Unterverzeichnisse nach Dateien mit der angegebenen Erweiterung (file_ext) zu durchsuchen. Für jede gefundene Datei extrahiert es das Änderungsdatum mithilfe des Befehls date und erstellt mit dem Befehl mkdir ein Verzeichnis mit diesem Datum (falls es noch nicht existiert). Schließlich verschiebt es die Datei mit dem Befehl mv in das Verzeichnis mit dem Änderungsdatum.