Wie kann man Dateien mit Single-Quotes im Namen verarbeiten?

  • Hallo,

    ich habe schon länger zu diesem Thema recherchiert, finde aber leider keine passende Lösung. Daher habe ich mich hier mal registriert und hoffe, dass mir jemand helfen kann.

    Per Bash-Script, möchte ich in einer rekursiven Dateisuche nach *.nfo Dateien Befehle ausführen. Auf die Namen dieser Dateien habe ich keinen Einfluss. Leider kommt es hin und wieder vor, dass eine Datei ein Single-Quote im Namen hat. Diese kann ich dann nicht verarbeiten. In dem konkreten Beispiel handelt sich um XML-Dateien und ich möchte dort ein Feld auslesen.

    Beispiel:

    Code
    #!/usr/bin/env bash
    set -e
    find /mnt/extern/hdd -name '*.nfo' | while read file; do
    		dt=$(xmlstarlet sel -t -v '//dateadded' "${file}")
            echo "$file: $dt"
    done

    Kommt jetzt eine Datei mit einem Single Quote im Namen, bekomme ich folgende Fehlermeldung:

    Code
    Invalid expression: '/pfad/zur/datei.nfo'
    runtime error
    Evaluating user parameter inputFile failed
    no result for /pfad/zur/datei.nfo

    Weiß jemand Rat?

    Vielen Dank im Voraus :)

    Grüße
    palim

  • Es könnte funktionieren, wenn Du die in Frage kommenden Dateien mit doppelten Anführungszeichen ("Datei mit ' im Namen") umschließt.

    Daily Driver PC: Pop!_OS 22.04 + Win 10 Dual Boot/ Intel i7-7700K / NVIDIA GeForce GTX 1070 / 32 GB RAM / 3x 1TB Samsung SSD

    Daily Driver Laptop: Framework 13 / Ubuntu 24.04 LTS / AMD Ryzen 7 7840U / 64 GB RAM / 2TB WD NVME

    Backup Laptop: HP Elitebook x360 1030 G2 / Fedora 40 / Intel i5-7200U / Intel HD 620 / 8 GB RAM / 500 GB Samsung NVMe

    Spiele PC: MX Linux + Garuda / AMD Ryzen 7 7800X3D / Radeon RX 6750 XT / 64 GB RAM / 2TB Samsung NVME + 512 GB Kingston NVME + 250 GB Samsung SSD

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!