Sed 删除多个字符
我想替换多个字符Sed 删除多个字符,sed,Sed,我想替换多个字符 echo "R \e&p[%20])l(a/ce" | sed 's|%20|-|g;s|\[||g;s|]||g;s| ||g;s|#||g;s|/||g;s|)||g;s|(||g;s|&||g;s|\\||g' Rep-lace 有没有其他方法可以做到这一点 用-替换%20,其余的不替换 echo "R \e&p[%20])l(a/ce" | sed 's/%20/-/g; s/[][ #/()&\\]//g' 因为字符集更容易以这种
echo "R \e&p[%20])l(a/ce" | sed 's|%20|-|g;s|\[||g;s|]||g;s| ||g;s|#||g;s|/||g;s|)||g;s|(||g;s|&||g;s|\\||g'
Rep-lace
有没有其他方法可以做到这一点
用-替换%20,其余的不替换
echo "R \e&p[%20])l(a/ce" | sed 's/%20/-/g; s/[][ #/()&\\]//g'
因为字符集更容易以这种方式扩展。需要知道的是,]
必须是要识别为集合一部分的集合中的第一个字符,而不是结束括号
根据您想要执行的具体操作,可能需要考虑反转字符集,并替换除指定数量的字符以外的所有字符。例如:
echo "R \e&p[%20])l(a/ce" | sed 's/%20/-/g; s/[^-[:alnum:]]//g'
这将用-
替换%20
,然后删除除-
和字母数字字符以外的所有字符。
echo "R \e&p[%20])l(a/ce" | sed 's/%20/-/g; s/[][ #/()&\\]//g'
因为字符集更容易以这种方式扩展。需要知道的是,]
必须是要识别为集合一部分的集合中的第一个字符,而不是结束括号
根据您想要做什么,可能需要考虑反转字符集,替换除指定字符数以外的所有内容。例如:
echo "R \e&p[%20])l(a/ce" | sed 's/%20/-/g; s/[^-[:alnum:]]//g'
这将用
-
替换%20
,然后删除除-
和字母数字字符以外的所有字符。在Bash
中,您可以在参数扩展+sed
中使用:
bash$ STR="R \e&p[%20])l(a/ce"
bash$ echo "${STR/"%20"/-}" | sed -r 's/[^a-z-]//gi'
Rep-lace
在
Bash
中,可以在参数扩展+sed
中使用:
bash$ STR="R \e&p[%20])l(a/ce"
bash$ echo "${STR/"%20"/-}" | sed -r 's/[^a-z-]//gi'
Rep-lace
感谢您提供有关删除所有字母数字字符的信息。感谢您提供有关删除所有字母数字字符的信息。