bash - 从 bash 变量中删除非打印字符

标签 bash variables

我有一些变量$a。此变量具有非打印字符(回车 ^M)。

>echo $a
some words for compgen
>a+="END"
>echo $a
ENDe words for compgen

我怎样才能删除那个字符? 我知道 echo "$a" 显示正确。但这不是我的解决方案。

最佳答案

你可以使用tr:

tr -dc '[[:print:]]' <<< "$var"

将从 $var 中删除不可打印的字符。

$ foo=$'abc\rdef'
$ echo "$foo"
def
$ tr -dc '[[:print:]]' <<< "$foo"
abcdef
$ foo=$(tr -dc '[[:print:]]' <<< "$foo")
$ echo "$foo"
abcdef

关于bash - 从 bash 变量中删除非打印字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22045175/

相关文章:

bash 对列进行排序但不对相同的列进行排序

linux - 通过命令/应用程序在 bash 提示符下打印的包装行前缀

sql - 如何将 select 语句的结果存储在变量中?

javascript - 预定义我正在制作的变量类型

templates - 在 jinja 的循环中求和一个值

bash - $@ 和 $* 之间的区别

linux - 不同 openssl 版本的行为差异

bash - 文件中最长的一行

c - 变量只读

python - 在 if 语句后使用变量