regex - sed - 只删除带元音的单词

标签 regex bash sed substitution

我正在尝试删除所有以元音开头的单词,如下所示。我的 sed 命令只删除第一个单词,如果它有元音,则不会删除任何其他单词。我认为下面的边界标记和使用 g 会捕获所有单词,但它没有这样做。我怎样才能得到所有带元音的单词?

echo "Always take a Big Apple " | sed -r 's/\b^[AEIOUaeiou]\w*//g'

最佳答案

移除^

sed -r 's/\b[AEIOUaeiou]\w*//g'

您不需要将其锚定到行首,只要您要求它位于单词边界即可。

关于regex - sed - 只删除带元音的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8429049/

相关文章:

python - 用 @s :eng only on lines starting with *CHI: 标记文本文件中的所有英文单词

javascript 在正则表达式执行后替换匹配项

regex - ls 和 find 之间的正则表达式差异以搜索 1 个字符串或另一个字符串

shell - SED 用单引号和双引号替换内容

regex - 我什么时候应该在正则表达式中使用\A?

java - 使用文本 I/O 重新格式化源代码

linux - 每次/bin/sh 被调用时你能运行一个脚本吗?

xcode - 执行嵌入到一行终端命令中的 Swift 代码

使用 sed 命令从文本文件中提取字符串

bash - 使用 sed 删除特定搜索字符串以外的文本