Ответ 1
другое решение использует tr
:
echo $testVar | tr -d '\r'
cat myscript | tr -d '\r'
опция -d
означает delete
.
Я новичок в shell script. Я ищу файл, используя исходную команду, которая создается в окнах, и имеет возврат каретки. После того, как я исправлю, когда я добавляю некоторые символы, он всегда приходит к началу строки.
test.dat (which has carriage return at end)
testVar=value123
testScript.sh (sorces above file)
source test.dat
echo $testVar got it
Выход, который я получаю,
got it23
Как я могу удалить '\ r' из переменной. Любая помощь будет действительно заметной.
другое решение использует tr
:
echo $testVar | tr -d '\r'
cat myscript | tr -d '\r'
опция -d
означает delete
.
Вы можете использовать sed следующим образом:
MY_NEW_VAR=$(echo $testVar | sed -e 's/\r//g')
echo ${MY_NEW_VAR} got it
ИЗМЕНИТЬ
Кстати, попробуйте сделать "dos2unix" в вашем файле данных.
используйте эту команду в своем файле script после копирования в Linux/Unix
perl -pi -e 's/\r//' scriptfilename
Труба до sed -e 's/[\r\n]//g'
, чтобы удалить как возврат каретки (\r
), так и линейные каналы (\n
) из каждой текстовой строки