如何替换或删除非字母字符,如'./','>'使用SED?

时间:2015-05-21 01:44:19

标签: regex sed

如何使用SED替换或删除'./','>'等非字母字符?

2 个答案:

答案 0 :(得分:1)

这可能适合你(GNU sed):

sed 's/[^[:alpha:]]//g' file

或者你的意思是:

sed 's/[[:punct:]]//g' file

这将保留空格/标签等。

有关详细信息,请参阅here

答案 1 :(得分:0)

这样的事情可以解决问题:

sed 's/[^a-zA-Z]//g'

...转换为(英文):替换所有不在字母表中的事件,没有任何内容。

正则表达式character classes匹配您在方括号之间指定的任何字符或字符组。如果括号中的第一项是“^”字符,则告诉正则表达式引擎字符类是否定的,这意味着不应该匹配由字符类的其余部分指定的任何字符,而是其他任何字符。应该。

所以在我的解决方案中,我说“匹配所有小写和大写字母”,然后否定它。

命令末尾的“g”表示:匹配所有事件,而不仅仅是第一个事件。没有它,只会删除第一个非字母字符。

当然,您可以将最后两个正斜杠之间的“无”替换为您想要替换非字母字符的任何内容。