给定以下字符串:
arn:aws:secretsmanager:us-east-1:3264873466873:secret:foo/bar 1564681234.974 foo/bar {"username":"admin","password":"admin123","secret_key":"KASJDFJHAKHFKAHASDF"} 4e397333-3797-4f0b-ad7e-8c1cc0ed041c VERSIONSTAGES AWSCURRENT
在shell脚本中,如何仅提取JSON部分以如下所示结束:
{"username":"admin","password":"admin123","secret_key":"KASJDFJHAKHFKAHASDF"}
我能够使用两个sed命令来做到这一点:
echo $longString | sed 's/^.*{/{/' | sed 's/}.*$/}/'
但是想知道是否有一种方法可以只使用一个命令。
分析解答
要提取输入的连续部分,可以使用grep
及其-o
选项(如果系统支持)。它告诉grep只输出匹配的部分。
grep -o '{.*}'