sed中的正则表达式替换问号

挡板

我想将所有不可打印的字符和空格以及问号替换为空。

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章