【问题标题】:Remove non-ascii characters from a variable in shell script从 shell 脚本中的变量中删除非 ascii 字符
【发布时间】:2012-12-20 17:01:56
【问题描述】:

我在 shell 脚本中对命令的输出进行 grep 处理,并将结果存储在一个变量中。

由于 grep 使用的解析逻辑,此变量可能包含非 ascii 字符。

问题:如何在 shell 脚本中从这个变量中删除这些非 ascii 字符,以便在后续命令中使用该变量?

【问题讨论】:

    标签: shell non-ascii-characters


    【解决方案1】:

    如果您使用的是 bash,并且您的变量名为 var,那么

    "${var//[^[:ascii:]]/}"
    

    将扩展为 var 并删除所有非 ascii 字符。所以:

    var_non_ascii=${var//[^[:ascii:]]/}
    

    应该这样做。 (这绝对是最好的方法:没有子外壳,也没有外部进程的分支来 bash)。

    【讨论】:

      【解决方案2】:

      假设你的变量是 var,试试这个:

      var=$(echo $var | sed 's/[^\x00-\x7F]//g')
      

      这应该删除非ASCII字符

      【讨论】:

      • 我选择了另一个答案,因为它不涉及外部过程。虽然赞成:)
      猜你喜欢
      • 1970-01-01
      • 2021-01-20
      • 1970-01-01
      • 1970-01-01
      • 2016-07-20
      • 2016-07-28
      • 2023-03-18
      • 2014-06-12
      相关资源
      最近更新 更多