Supondo $fileque o valor de um nome de arquivo seja mantido, digamos Dr' A.tif. Na programação do bash, como eu poderia escapar de aspas simples e qualquer outro caractere especial do $filesem remover o caractere especial?
Atualização em 9 de julho de 2014
A pedido do @Gilles , a seguir trecho de código que não pode manipular 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}
Depois de eu ter tentado a resposta do @Patrick on line 1, parece trabalhar para mim. Mas se eu tiver um arquivo como Dr\^s A.tif, printfcomando não parece ajudar, isso me mostra Dr\^s\ A.tif. Se eu tentar manualmente no console assim:
printf "%q" "Dr\^s A.tif"
Vou ter esta saída:
Dr\\\^s\ A.tif
Alguma idéia de como lidar com isso?