En BASH, Comment puis-je remplacer \ r à partir d'une variable qui existe dans un fichier écrit en utilisant HTML
Question
Comment remplacer le \ r?
#!/bin/bash
...
# setup
if [[ $i =~ $screen ]]; then
ORIGINAL=${BASH_REMATCH[1]} # original value is: 3DROTATE\r
AFTER =${ORIGINAL/\\r/} # does not replace \r
myThirdPartyApplication -o $replvar # FAILS because of \r
fi
La solution
Vous pouvez utiliser sed, i.e..
AFTER=`echo $ORIGINAL | sed 's/\\r//g'`
Autres conseils
Cela devrait supprimer le premier \ r.
AFTER="${ORIGINAL/$'\r'/}"
Si vous devez supprimer tous les utiliser $ {ORIGINAL // $ '\ r' /}
Il suffit d'utiliser un caractère littéral ^M
, il n'a pas de sens à bash.
Une autre option consiste à utiliser « tr » pour supprimer le caractère ou le remplacer par \ n ou quoi que ce soit d'autre.
ORIGINAL=$(echo ${BASH_REMATCH[1]} | tr -d '\r')
Dans le même à l'approche de @ tharrrk, cette substitution de paramètre supprimer également le dernier '\ r':
AFTER="${ORIGINAL%'\r'}"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow