如何更新复制的 JSON 字符串中的 UUID 字段?
How can you update a UUID field in a copied JSON string?
我的粘贴缓冲区中有一个 JSON 字符串:
{ "uuid":"886c69ba-c487-45a9-982e-f22820059a78", "meaningOfLife": 42 }
我想将 UUID 更新为全新的 V4 UUID(随机),然后用新字符串覆盖粘贴缓冲区。我如何在 Linux/Mac 机器的命令行中执行此操作?
这可以通过结合使用一些实用程序来解决。
首先,想出一种在命令行中创建新UUID的方法。有很多种方法,一种方法是安装 gen-uuid after npm is installed,例如npm i gen-uuid -g
。完成后,您可以 运行 以下代码:
UUID=`gen-uuid`
pbpaste | sed "s/\"uuid\":\"[^\"]*\"/\"uuid\":\"$UUID\"/g" | pbcopy
这将变成
{ "uuid":"886c69ba-c487-45a9-982e-f22820059a78", "meaningOfLife": 42 }
变成这样:
{ "uuid":"aab21875-d9d7-4d55-9204-f2d7a9b34109", "meaningOfLife": 42 }
我更喜欢在我的 ~/.bash_profile
文件中放置这样的复杂命令,如下所示:
# overwrite JSON string with a new uuid V4
newu() {
UUID=`gen-uuid`
pbpaste | sed "s/\"uuid\":\"[^\"]*\"/\"uuid\":\"$UUID\"/g" | pbcopy
}
然后,从您的命令行,您可以 运行 newu
任何 JSON 字符串,其中包含 UUID!
更新:如@chepner 所述,您还可以使用 jq
实用程序(使用 brew install jq
在 Mac 上使用 brew 安装)来提高可读性并降低易碎性这个 sed
命令。请注意 jq
如果无效 JSON.
将抛出错误
# overwrite JSON string with a new uuid V4
newu() {
UUID=`gen-uuid`
pbpaste | jq --indent 0 ".uuid = \"$UUID\"" | pbcopy
}
我的粘贴缓冲区中有一个 JSON 字符串:
{ "uuid":"886c69ba-c487-45a9-982e-f22820059a78", "meaningOfLife": 42 }
我想将 UUID 更新为全新的 V4 UUID(随机),然后用新字符串覆盖粘贴缓冲区。我如何在 Linux/Mac 机器的命令行中执行此操作?
这可以通过结合使用一些实用程序来解决。
首先,想出一种在命令行中创建新UUID的方法。有很多种方法,一种方法是安装 gen-uuid after npm is installed,例如npm i gen-uuid -g
。完成后,您可以 运行 以下代码:
UUID=`gen-uuid`
pbpaste | sed "s/\"uuid\":\"[^\"]*\"/\"uuid\":\"$UUID\"/g" | pbcopy
这将变成
{ "uuid":"886c69ba-c487-45a9-982e-f22820059a78", "meaningOfLife": 42 }
变成这样:
{ "uuid":"aab21875-d9d7-4d55-9204-f2d7a9b34109", "meaningOfLife": 42 }
我更喜欢在我的 ~/.bash_profile
文件中放置这样的复杂命令,如下所示:
# overwrite JSON string with a new uuid V4
newu() {
UUID=`gen-uuid`
pbpaste | sed "s/\"uuid\":\"[^\"]*\"/\"uuid\":\"$UUID\"/g" | pbcopy
}
然后,从您的命令行,您可以 运行 newu
任何 JSON 字符串,其中包含 UUID!
更新:如@chepner 所述,您还可以使用 jq
实用程序(使用 brew install jq
在 Mac 上使用 brew 安装)来提高可读性并降低易碎性这个 sed
命令。请注意 jq
如果无效 JSON.
# overwrite JSON string with a new uuid V4
newu() {
UUID=`gen-uuid`
pbpaste | jq --indent 0 ".uuid = \"$UUID\"" | pbcopy
}