【发布时间】:2021-02-01 15:37:21
【问题描述】:
因此,我最近向 sed 命令寻求帮助,用于替换符号的第一次和第二次出现之间的文本。这是该问题的链接:How to replace text in a specific line between first appearence of a symbol and second appearence of it
现在我需要类似的东西,在第二次和第三次出现之间替换,第三次到行尾
假设我有这个文本文件:
aaaa:bbbb:cccc:dddd
eeee:ffff:gggg:hhhh
iiii:jjjj:kkkk:llll
sed "${lineNumber}s/:[^:]*/:${passwd}/" users.txt
此行的作用是替换给定行中的第一个和第二个“:”,所以问题是该命令应该如何替换第二个和第三个“:”,以及第三个到行尾。
因此,例如,用“####”替换第三行中的第二个和第三个的输出将如下所示:
aaaa:bbbb:cccc:dddd
eeee:ffff:gggg:hhhh
iiii:jjjj:kkkk:####
和代码
sed "${lineNumber}s/:[^:]*/:${passwd}/" users.txt
^^^^^^ I think that is what should be replaced
【问题讨论】:
-
你能解释一下为什么你没有接受上一个问题的任何答案吗?
-
能否请您在代码标签中的问题中发布预期输出示例,以使问题更清晰。
-
上一个问题中给出的答案很有用并且有效,但现在我需要一个不同的命令来处理我正在寻找的不同输出。这是我使用 bash 的第一年,所以我是初学者,不能很容易地修改代码。