【发布时间】:2019-10-18 10:19:24
【问题描述】:
我需要在 Bash 命令行上使用 grep 捕获特定字符串。我无法使用 sudo install/apt-install 安装任何附加软件/软件包,例如 jq。我没有使用任何 Python 解释器;简单的 Bash 命令行。
我在在线正则表达式测试仪上使用所需的输入字符串测试了我的正则表达式字符串,它可以正常工作。然而,当我用 grep 尝试它时,它会为我提供整个文本,而不是捕获的文本。
正则表达式:'":"(.+)","'
输入:
HTTP_RESPONSE='{"access_token":"eyJhbGciOiJSUzI1NiIsImtpZCI6IkE4M0UwQTFEQTY1MzE0NkZENUQxOTFDMzRDNTQ0RDJDODYyMzMzMzkiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJxRDRLSGFaVEZHX1YwWkhEVEZSTkxJWWpNemsifQ.eyJuYmYiOjE1NTkzMjk5OTIsImV4cCI6MTU1OTMzMzU5MiwiaXNzIjoiaHR0cHM6Ly9jaW5jaHktbnByLmNsb3VkLnJlcy5ibmdmLmxvY2FsL2NpbmNoeXNzbyIsImF1ZCI6WyJodHRwczovL2NpbmNoeS1ucHIuY2xvdWQucmVzLmJuZ2YubG9jYWwvY2luY2h5c3NvL3Jlc291cmNlcyIsImpzX2FwaSJdLCJjbGllbnRfaWQiOiJhcGkiLCJzdWIiOiIxIiwiYXV0aF90aW1lIjoxNTU5MzI5OTkyLCJpZHAiOiJsb2NhbCIsInByb2ZpbGUiOiJBZG1pbmlzdHJhdG9yIiwiZW1haWwiOiJhZG1pbkBjaW5jaHkuY28iLCJyb2xlIjoiQ2luY2h5IFVzZXIgQWNjb3VudCIsImlkIjoiYWRtaW4iLCJzY29wZSI6WyJqc19hcGkiXSwiYW1yIjpbImN1c3RvbSJdfQ.gI_MYzkanGmDXPd8Wp1Q2XOOhAvnWxzOxSUngxYv8UFO1ozXm5ZxFDpUVXFodTQHKEk2B9h9VMXwyg80bxqqT7csHnjg43tylgEIKpupcubqXT1HzH_bMv8povGU6S75b8p8SWQKyYihm4nBdMDJFZMtKMg95ByBlaHpXV_6vuLUB0qFfcbWi5rHgHnJOT08ZJcHJUozS05FVZt_lU2zepNrwSqOvY3AnXpz9Z8KfrlARB46ukB3tBJzNvMDvxi44wfwpnky-4dxq0CcHoa766l6E66gjaLmR3ApHy4YKnP_DxDSR6mSHnVTEzPN7mt_1rklseK0TVd0kK3CpUg2aQ","expires_in":3600,"token_type":"Bearer"}'
echo $HTTP_RESPONSE | grep -E '":"(.+)","'
得到的结果:
{"access_token":"eyJhbGciOiJSUzI1NiIsImtpZCI6IkE4M0UwQTFEQTY1MzE0NkZENUQxOTFDMzRDNTQ0RDJDODYyMzMzMzkiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJxRDRLSGFaVEZHX1YwWkhEVEZSTkxJWWpNemsifQ.eyJuYmYiOjE1NTkzMjk5OTIsImV4cCI6MTU1OTMzMzU5MiwiaXNzIjoiaHR0cHM6Ly9jaW5jaHktbnByLmNsb3VkLnJlcy5ibmdmLmxvY2FsL2NpbmNoeXNzbyIsImF1ZCI6WyJodHRwczovL2NpbmNoeS1ucHIuY2xvdWQucmVzLmJuZ2YubG9jYWwvY2luY2h5c3NvL3Jlc291cmNlcyIsImpzX2FwaSJdLCJjbGllbnRfaWQiOiJhcGkiLCJzdWIiOiIxIiwiYXV0aF90aW1lIjoxNTU5MzI5OTkyLCJpZHAiOiJsb2NhbCIsInByb2ZpbGUiOiJBZG1pbmlzdHJhdG9yIiwiZW1haWwiOiJhZG1pbkBjaW5jaHkuY28iLCJyb2xlIjoiQ2luY2h5IFVzZXIgQWNjb3VudCIsImlkIjoiYWRtaW4iLCJzY29wZSI6WyJqc19hcGkiXSwiYW1yIjpbImN1c3RvbSJdfQ.gI_MYzkanGmDXPd8Wp1Q2XOOhAvnWxzOxSUngxYv8UFO1ozXm5ZxFDpUVXFodTQHKEk2B9h9VMXwyg80bxqqT7csHnjg43tylgEIKpupcubqXT1HzH_bMv8povGU6S75b8p8SWQKyYihm4nBdMDJFZMtKMg95ByBlaHpXV_6vuLUB0qFfcbWi5rHgHnJOT08ZJcHJUozS05FVZt_lU2zepNrwSqOvY3AnXpz9Z8KfrlARB46ukB3tBJzNvMDvxi44wfwpnky-4dxq0CcHoa766l6E66gjaLmR3ApHy4YKnP_DxDSR6mSHnVTEzPN7mt_1rklseK0TVd0kK3CpUg2aQ","expires_in":3600,"token_type":"Bearer"}
预期:
eyJhbGciOiJSUzI1NiIsImtpZCI6IkE4M0UwQTFEQTY1MzE0NkZENUQxOTFDMzRDNTQ0RDJDODYyMzMzMzkiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJxRDRLSGFaVEZHX1YwWkhEVEZSTkxJWWpNemsifQ.eyJuYmYiOjE1NTkzMjk5OTIsImV4cCI6MTU1OTMzMzU5MiwiaXNzIjoiaHR0cHM6Ly9jaW5jaHktbnByLmNsb3VkLnJlcy5ibmdmLmxvY2FsL2NpbmNoeXNzbyIsImF1ZCI6WyJodHRwczovL2NpbmNoeS1ucHIuY2xvdWQucmVzLmJuZ2YubG9jYWwvY2luY2h5c3NvL3Jlc291cmNlcyIsImpzX2FwaSJdLCJjbGllbnRfaWQiOiJhcGkiLCJzdWIiOiIxIiwiYXV0aF90aW1lIjoxNTU5MzI5OTkyLCJpZHAiOiJsb2NhbCIsInByb2ZpbGUiOiJBZG1pbmlzdHJhdG9yIiwiZW1haWwiOiJhZG1pbkBjaW5jaHkuY28iLCJyb2xlIjoiQ2luY2h5IFVzZXIgQWNjb3VudCIsImlkIjoiYWRtaW4iLCJzY29wZSI6WyJqc19hcGkiXSwiYW1yIjpbImN1c3RvbSJdfQ.gI_MYzkanGmDXPd8Wp1Q2XOOhAvnWxzOxSUngxYv8UFO1ozXm5ZxFDpUVXFodTQHKEk2B9h9VMXwyg80bxqqT7csHnjg43tylgEIKpupcubqXT1HzH_bMv8povGU6S75b8p8SWQKyYihm4nBdMDJFZMtKMg95ByBlaHpXV_6vuLUB0qFfcbWi5rHgHnJOT08ZJcHJUozS05FVZt_lU2zepNrwSqOvY3AnXpz9Z8KfrlARB46ukB3tBJzNvMDvxi44wfwpnky-4dxq0CcHoa766l6E66gjaLmR3ApHy4YKnP_DxDSR6mSHnVTEzPN7mt_1rklseK0TVd0kK3CpUg2aQ
【问题讨论】:
-
@Cyrus 这个问题仍然没有答案,所以我打开了另一个帖子,有更好的细节和更严格的细节。
标签: json regex bash command-line grep