В BASH, как заменить \ r из переменной, которая существует в файле, написанном с использованием HTML <textarea></textarea> - PullRequest
5 голосов
/ 18 октября 2011

Как заменить \ 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

Ответы [ 5 ]

9 голосов
/ 25 апреля 2013

Это должно удалить первый \ r.

AFTER="${ORIGINAL/$'\r'/}"

Если вам нужно удалить все из них, используйте $ {ORIGINAL // $ '\ r' /}

7 голосов
/ 18 октября 2011

Вы можете использовать sed, т.е.

AFTER=`echo $ORIGINAL | sed 's/\\r//g'`
4 голосов
/ 18 октября 2011

Просто используйте буквальный ^M символ, он не имеет смысла использовать bash.

1 голос
/ 08 октября 2013

Подобно подходу @ tharrrk, эта подстановка параметров также удаляет последний '\ r':

AFTER="${ORIGINAL%'\r'}"
1 голос
/ 10 июня 2013

Другой вариант - использовать 'tr', чтобы удалить символ, или заменить его на \ n или что-нибудь еще.

 ORIGINAL=$(echo ${BASH_REMATCH[1]} | tr -d '\r')
...