Angenommen, Sie $file
halten einen Wert für einen Dateinamen, sagen wir Dr' A.tif
. Wie kann ich mich bei der Bash-Programmierung von einfachen Anführungszeichen und anderen Sonderzeichen von $file
fernhalten, ohne das Sonderzeichen zu entfernen?
Aktualisierung am 9. Juli 2014
Auf Anfrage von @Gilles wird das folgende Code-Snippet nicht verarbeitet Dr' A.tif
:
files=$(find /path/ -maxdepth 1 -name "*.[Pp][Dd][Ff]" -o -name "*.[Tt][Ii][Ff]")
echo "${files}" > ${TEMP_FILE}
while read file
do
newfile=$(echo "${file}" | sed 's, ,\\ ,g') ## line 1
done < ${TEMP_FILE}
Nachdem ich aus der versucht habe Antwort von @Patrick auf line 1
, so scheint es , für mich zu arbeiten. Aber wenn ich Datei wie Dr\^s A.tif
, printf
Befehl scheint nicht helfen, es zeigt mir Dr\^s\ A.tif
. Wenn ich es manuell auf der Konsole so versuche:
printf "%q" "Dr\^s A.tif"
Ich werde diese Ausgabe haben:
Dr\\\^s\ A.tif
Hast du eine Idee, wie du damit umgehen sollst?