Добавление ответа, чтобы показать пример удаления нескольких символов, включая \ r, с помощью tr и с помощью sed. И проиллюстрировал использование hexdump.
В моем случае я обнаружил, что команда, оканчивающаяся на awk print последнего элемента |awk '{print $2}'
в строке, включает возврат каретки \ r, а также кавычки.
Раньше я sed 's/["\n\r]//g'
удалял и возврат каретки, и кавычки.
Я тоже мог использовать tr -d '"\r\n'
.
Интересное замечание sed -z
необходимо, если кто-то хочет удалить символы перевода строки \ n.
$ COMMAND=$'\n"REBOOT"\r \n'
$ echo "$COMMAND" |hexdump -C
00000000 0a 22 52 45 42 4f 4f 54 22 0d 20 20 20 0a 0a |."REBOOT". ..|
$ echo "$COMMAND" |tr -d '"\r\n' |hexdump -C
00000000 52 45 42 4f 4f 54 20 20 20 |REBOOT |
$ echo "$COMMAND" |sed 's/["\n\r]//g' |hexdump -C
00000000 0a 52 45 42 4f 4f 54 20 20 20 0a 0a |.REBOOT ..|
$ echo "$COMMAND" |sed -z 's/["\n\r]//g' |hexdump -C
00000000 52 45 42 4f 4f 54 20 20 20 |REBOOT |
И это актуально:
что такое возврат каретки, перевод строки и перевод страницы?
- CR == \ r == 0x0d
- LF == \ n == 0x0a