Проблема:Как узнать, является ли символ возвратом каретки?
Я всегда был в состоянии во время цикла через символы, чтобы определить символ, я хочу. Однако теперь, когда я хочу, чтобы определить, возврат каретки, мой способ делать вещи, кажется, не работает:
function removeCarriageReturn()
{
word=""
while IFS= read -r -n1 char ; do
if [ "${char}" != "\r" ] ; then
word="${word}${char}"
fi
done <<<"$1"
printf '%s\n' "$word"
}
Результат:
По причине я не знаю, это добавляет почему-то «$» перед возвратом кареты? Вот результат (от Jenkins):
Когда символ анализируют, например, 8
++ '[' 8 '!=' '\r' ']'
Когда символ анализируемый \ R
++ '[' $'\r' '!=' '\r' ']'
Это снимает только с конца. Цикл OPs удаляется в любом месте. –
Я пропустил это. Закрепление. – chepner
отметит это как ответ, спасибо! Ваш первый вариант, удаляет ли он все экземпляры? – Cher