【发布时间】:2018-05-25 22:02:28
【问题描述】:
file.txt 中有多次出现的单词“dummy”,目标是用新的 UUID 替换每次出现的此类单词。
我想知道是否有使用单行命令的解决方案,但如果没有,我想要最简单的 bash 脚本。例如,符合:
sed -i "s/dummy/$(uuidgen)/g" file.txt
不幸的是,这个命令将每个单词 'dummy' 替换为相同的 uuid。
例如
输入:
{
{"myid":"dummy"},
{"myid":"ymmud"},
{"myid":"dummy"},
{"myid":"ymmud"},
{"myid":"dummy"},
{"myid":"ymmud"}
}
预期输出:
{
{"myid":"79769E7B-BED5-4CB5-AEF9-CCE445D9212E"},
{"myid":"ymmud"},
{"myid":"F2FDDD4A-4800-4F0F-911A-FEDBC82915DD"},
{"myid":"ymmud"},
{"myid":"52D93565-81E9-479C-8BD9-457754581BBE"},
{"myid":"ymmud"}
}
【问题讨论】:
-
请在您的帖子中添加示例输入和预期示例输出,然后告诉我们。
-
@RavinderSingh13 如果这个例子不满意,请告诉我
-
@JoãoMatos:这是您正在处理的 JSON 文本吗?
-
检查这个答案:stackoverflow.com/a/29329216/745235。根据答案,您可以执行以下操作:
sed '/dummy/ { h; s/.*/echo $(uuidgen)/e; x; G; s/dummy\n// }' yourfilename >> newfile