我正在尝试验证一些输入以删除一组字符。仅允许使用字母数字字符加号、句点、下划线和连字符。我在这里 http://gskinner.com/RegExr/ 测试了正则表达式 [^\w.-]
它与我想要删除的内容相匹配,所以我不确定为什么 sed
返回相反的内容。我错过了什么?
我的最终目标是输入 "Â10.41.89.50 "
并获得 "10.41.89.50
"。
我试过:
回显“Â10.41.89.50”| sed s/[^\w.-]//g
返回 ...
回显“Â10.41.89.50”| sed s/[\w.-]//g
和 echo "Â10.41.89.50 "| sed s/[\w^.-]//g
返回 Â10418950
我尝试了在这里找到的答案 Skip/remove non-ascii character with sed但没有删除任何内容。
最佳答案
tr的 -c
(补充)标志可能是一个选项
echo "Â10.41.89.50-._ " | tr -cd '[:alnum:]._-'
关于regex - 使用 sed 删除非字母数字字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20007288/