我正在尝试删除所有非字母数字字符和非空格字符以及非破折号非下划线字符
echo "$1" |sed 's/[^a-zA-Z0-9[:space:]]//g'
我想要一些像
这样的东西echo "$1" |sed 's/[^\-\_a-zA-Z0-9[:space:]]//g'
如何将两个正则表达式规则混合在一起?
示例输入是:
a-b
a_b
ab
a..
a.b
a b
a %b
a ^&n
我想要这个输出:
a-b
a_b
ab
a
ab
a b
a b
a n
答案 0 :(得分:2)
这适用于GNU sed:
sed 's/[^-_a-zA-Z0-9[:space:]]//g' file
$ cat file a-b a_b ab a.. a.b a b a %b a ^&n $ sed 's/[^-_a-zA-Z0-9[:space:]]//g' file a-b a_b ab a ab a b a b a n