如何将带有隐藏字符的字符串转换为普通字符串

如何将带有隐藏字符的字符串转换为普通字符串

有谁知道如何从 shell 中的字符串中删除隐藏字符?

  • 这是一个例子:

    # echo $a;
    [root@localhost ~]#
    
  • 但是当我“强制”显示隐藏字符时,它看起来像这样:

    # echo $a | cat -v
    [root@localhost ~]# ls ^H^[[K^H^[[K^H^[[Kpwd^H^[[K^H^[[K^H^[[Kls^H^[[K^H^[[Kpwd^H^[[K^H^[[K^H^[[K
    
  • 我想删除隐藏字符以获得以下输出:

    # echo $a | cat -v
    [root@localhost ~]#
    

答案1

使用 sed 去除非打印字符:

echo $a | sed 's/[^ -~]//g' | cat -v

或者存储它:

a=$(echo $a | sed 's/[^ -~]//g')

相关内容