我正在尝试从字符串中删除“坏”字符,但我似乎无法让它正常行事。
我当前的命令:如果我试图删除e和l
sed -e "s/e|l//g" ...
这完全符合预期
sed -e "s/e//g"
所以我的主要问题是如何使用正则表达式匹配和替换多个独立字符串?
答案 0 :(得分:3)
对于您的具体示例,如果您要查找字母e
或l
的任何实例,则需要字符类。说:
sed 's/[el]//g'
答案 1 :(得分:0)
正如我在评论中提到的那样,你不能match and replace multiple independent strings using regex
但是match and replace multiple independent strings
就是这样,只是不使用正则表达式:
awk -v strings="foo,bar" '
BEGIN {
split(strings,tmp,/,/)
for (i=1;i in tmp; i++)
stringA[tmp[i]]
}
{
for (string in stringA) {
if ( start = index($0,string) ) {
$0 = substr($0,1,start-1) "some other string" substr($0,start+length(string)+1)
}
}
print
}
' file
未经测试,但上述内容应将字符串“foo”和/或“bar”替换为文本“some other string”。