regex - 使用 sed 去除字符串中的括号

标签 regex unix sed

我正在尝试使用 sed(1) 从字符串中删除括号,但前提是括号以特定字符串开头。例如,我想将 Song Name (f/featured artist) (Remix) 等字符串更改为 Song Name f/featuredartist (Remix)。我怎样才能做到这一点?

我目前正在尝试以下操作:

echo "Song Name (f/ featuredartist) (Remix)" | sed s/"(f\/ [a-z]*)"/"f\/ "/

但这一切所做的只是返回 Song Name f/(Remix)

另请注意:f/) 之间的所有内容,而不仅仅是像我的工作尝试所暗示的那样 [a-z]*

最佳答案

这可能对你有用:

echo "Song Name (f/ featuredartist) (Remix)" | sed 's|(\(f/[^)]*\))|\1|'
Song Name f/ featuredartist (Remix)

关于regex - 使用 sed 去除字符串中的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9855515/

相关文章:

java - unicode字符的正则表达式问题

awk - 如果模式存在于另一列中,则从该列中移除模式

javascript - 我如何检查子字符串是否与正则表达式匹配?

unix - 我可以获得一个文件与另一个文件的不同程度的百分比吗?

linux - 获取下周星期二和星期三,使用 Linux date 命令

linux - 排序命令中空格的处理。 LC_COLLATE=c 和 LC_COLLATE ="en_US.UTF-8"之间的区别

perl - 在 Unix 中排序日期/时间

linux - sed 的不同选项 - 是否获取重复行

regex - Notepad++ 查找和替换数字正则表达式

java - 正则表达式删除引号之间的空格,但不删除引号内单词之间的空格?