我想使用sed
或perl
替换前面没有特定单词的单词的所有出现。
例如,我有一个文本文件,其中包含电影情节,并且我希望将所有出现的角色姓氏替换为其名字,但前提是角色的姓氏不紧跟其姓氏。
示例文本可能如下所示:
John Smith and Jane Johnson talk about Smith's car.
我希望它看起来像这样:
John Smith and Jane Johnson talk about John's car.
如果我只是这样做sed 's/Smith/John/' file
,那么我将有:
John John and Jane Johnson talk about John's car.
在姓氏之前的名字将始终相同。我不必处理John Smith
和Frank Smith
。我只需要一种匹配的方法Smith
,而没有John
之前的方法。
您在说哪个sed?
—
伊格纳西奥·巴斯克斯
GNU在Linux上sed 4.2.1
—
jonescb 2011年