【发布时间】:2011-01-16 05:09:51
【问题描述】:
我正在寻求您对 sed 的帮助。我需要从字符串的开头和结尾删除重复的下划线和下划线。
例如:
echo '[Lorem] ~ ipsum *dolor* sit metus !!!' | sed 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._()-]/_/g'
产生:
_Lorem____ipsum__dolor__sit_metus____
但我需要将此字符串进一步格式化为:Lorem_ipsum_dolor_sit_metus
换句话说,删除字符串开头和结尾的所有下划线,并将多个连续的下划线符号减少为一个,最好使用另一个管道。
你知道怎么做吗?
谢谢。
【问题讨论】:
-
在 POSIX 正则表达式中,字符串 '[:alnum:]' 将代替您写出字母数字的可能性。例如。 's/[^[:alnum:]._()-]/_/g'.