![在没有 grep -oP 的情况下解析简单的 JSON](https://linux22.com/image/206600/%E5%9C%A8%E6%B2%A1%E6%9C%89%20grep%20-oP%20%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E8%A7%A3%E6%9E%90%E7%AE%80%E5%8D%95%E7%9A%84%20JSON.png)
这是我的 JSON:
{"login":"WG1118412764OA","password":"9Hv1zd74nKhYovZa"}
我有非常基本的 grep,没有 Python,没有 Perl,显然也没有 jq,只有 awk 和 sed。
有人可以帮我吗?
我需要将登录名和密码值作为 shell 变量。
谢谢
卡尔800
答案1
cut
如果您builtin
只需要工具,则可以选择;-)
OLD_IFS="$IFS"
IFS='"'
set -- $(<file)
IFS="$OLD_IFS"
login=$4
password=$8
甚至:
IFS='"' read -r a b c login d e f password g < file
json
请注意,您的输入或内部密码的轻微更改"
都会出现问题。
最好使用适当的json
解析器,例如jq
。如果您没有,请安装它或让管理员为您安装。始终拥有适合您任务的工具!
答案2
假设您拥有所有必需的 POSIX 工具,而不仅仅是 awk、sed 和 grep,您可以只使用cut
如下所示的输入:
$ login=$(cut -d'"' -f4 file)
$ passwd=$(cut -d'"' -f8 file)
$ echo "$login"
WG1118412764OA
$ echo "$passwd"
9Hv1zd74nKhYovZa
如果这不是您所需要的全部,那么编辑您的问题以提供更真正具有代表性的示例输入/输出,包括不适用于的情况。