我想将所有不可打印的字符和空格以及问号替换为空。
sed 's/[^[:print:]\|?\| \r\t]//g'
但这只会代替不可打印的字符。空格和问号仍然存在。
方括号表达式中的管道表示管道,而不是交替运算符。
您可以使用
sed -E 's/[^[:print:]]|[[:blank:]?]//g' file > outfile
这里,
-E
启用POSIX ERE语法[^[:print:]]
-任何不可打印的字符|
-或(在此,由于-E
且事实上它在方括号表达式之外,因此它是一个交替运算符[[:blank:]?]
-水平的空白或问号。如果要使用POSIX BRE,可以链接两个命令:
sed 's/[^[:print:]]//g;s/[[:blank:]?]//g' file > outfile
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句