shell - 从 shell 脚本中的变量中删除非 ascii 字符

标签 shell non-ascii-characters

我在 shell 脚本中搜索命令的输出并将结果存储在一个变量中。

由于 grep 使用的解析逻辑,有一个非常极端的情况,该变量可能具有非 ascii 字符。

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

最佳答案

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

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

将扩展为 var删除所有非 ascii 字符。所以:
var_non_ascii=${var//[^[:ascii:]]/}

应该做。 (这绝对是最好的方法:没有子 shell,也没有外部进程的 fork 来进行 bash)。

关于shell - 从 shell 脚本中的变量中删除非 ascii 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13977043/

相关文章:

c++ - getline() 不能正确读取重音字符

linux - 将文件内容转换为大写

sql - 在SQL Server中创建支持多语言排序规则的表

python - 当我尝试删除 Python 字符串中的重音符号时,如何修复出现的 UnicodeDecodeError?

linux - 计数.sh : line 13: syntax error near unexpected token `done'

c - 如何在 ANSI C 中打印重音字符(如 á é í ó ú)

c# - 在 ASP.NET Core 中写入响应时,非 ASCII 字符被打乱

c - 进程组内的流水线

string - 检查字符串的最后一个字符

linux - 不使用 tee 命令打印到 shell 的正确方法