非常简单的问题,但似乎找不到简单的答案...
我正在编写一个需要删除所有非字母和非数字字符的 bash 脚本。例如。我要……
INPUT_STRING="ABC# .1-2-3"
OUTPUT_STRING= # some form of processing on $INPUT_STRING #
echo $OUTPUT_STRING
ABC123
我意识到最好使用正则表达式来解决这个问题,但不确定如何在脚本中有效地使用它。
非常感谢所有帮助...
最佳答案
您可以使用 sed
去除所有不是 a-z
、A-Z
或 0-9
的字符:
$ echo "ABC# .1-2-3" | sed 's/[^a-zA-Z0-9]//g'
ABC123
所以在你的情况下,
$ INPUT_STRING="ABC# .1-2-3"
$ OUTPUT_STRING=$(echo $INPUT_STRING | sed 's/[^a-zA-Z0-9]//g')
$ echo $OUTPUT_STRING
ABC123
关于regex - 从 shell 脚本中的字符串中过滤非字母字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17167385/