【发布时间】:2018-05-27 05:58:16
【问题描述】:
我想创建一个正则表达式,它可以用字符“X”替换恰好包含两个以大写开头的单词的行。
我目前正在使用这个:
sed -e '/\b[A-Z][a-z]*\b c X /home/Morgan/desktop/test
问题如下:它只更改包含 1 个或多个单词的行,这些单词由我的 test.txt 中的正则表达式描述。
我不知道怎么说,我只想要一个 X 只在正好有 2 个以大写开头的单词的行上。任何一个词都可以出现在该行中的任何位置。
我的 test.txt 包含:
Bonjour oui oui Bonjour -> 必须用 X 替换
Bonjour Bonjour Bonjour -> 这绝对不能
Bonjour Oui bonjour oui -> 必须用 X 替换
【问题讨论】:
-
sed -e '/\b[A-Z][a-z]*\b c X /home/Morgan/desktop/test语法无效。您能否提供一个您当前尝试的工作示例? -
您当前的尝试是语法错误。您是否试图用某些东西替换正则表达式?
sed无论如何都不懂\b。 -
@tripleee 由于 OP 已标记 ubuntu,我假设 GNU sed 可用,因此
\b将被识别为单词边界 -
@Sundeep 的确如此。感谢您的提示。