【发布时间】:2018-07-16 09:03:39
【问题描述】:
我正在尝试替换文件中出现的 nth 个子字符串。我尝试使用sed 来实现这一点,但所有尝试都未能给我想要的输出。一些尝试是:
sed 's/old/new/g'
sed 's/old/new/3'
sed 's/old/new/3g'
【问题讨论】:
-
欢迎来到 Stack Overflow!请澄清您的具体问题正如目前所写的那样,很难准确地说出您在问什么。请edit您的问题并包括额外的信息,例如您用来导致您所做的陈述的命令。这将帮助其他人看到问题,以便他们可以帮助您。要进行编辑,请单击位于问题下方和左侧一行的帖子的 edit 链接,然后粘贴请求的材料。另外,看看How to Ask。
-
我是否正确理解您想用 new 替换子字符串 old 的第 n 个 次出现。还是要替换前 n 次出现?根据您的编辑,我了解到您尝试了
sed 's/old/new/g'和sed 's/old/new/3g'。还有,你为什么说sed "s/old/new/1"不做任何替换? -
我已经更新了你的问题。你能检查一下这是否反映了你想要的吗?
-
所以我有三行......在所有这些行中我都有“测试”这个词,但我只想在第二行和第三行替换它。所以我使用了命令 "s/old/new/2" 和 "s/old/new/3" 。但内容不会被替换。这是正确的方法还是我有不同的方法来解决这个问题?
-
是的,更新后的问题是正确的