我有一个以 \r\n
结尾的 bash 变量:
$ # Not the real command to get VAR's value, just an example
$ VAR="$(echo -en 'hello\r\n')"
$ hexdump -C <<< "$VAR"
00000000 68 65 6c 6c 6f 0d 0a |hello..|
00000007
我想要删除
\r
(\n
本身已被bash正确处理)。我可以使用
VAR="$(tr -d '\r' <<< "$VAR")"
来修剪它,但这意味着必须为此任务运行一个进程。我尝试使用“删除匹配后缀模式”bash功能,但找不到要使用的模式(例如,
${VAR%\r}
、${VAR%\x0d}
、${VAR%[\r]}
,但它们都不起作用)。有什么办法可以在不创建子进程的情况下删除
\r
吗?
the \n itself is correctly handled by bash
希望你知道$(...)
会 移除 换行符,而变量本身没有换行符,然后<<<
会 添加 换行符到hexdump
的输入中。 - KamilCuk