如何使用grep的正则表达式从文件中提取base64文本

E23*_*235 2 regex bash grep

我有以下内容:

{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "TXlQYXNzd29yZA=="
                }
        },
        "HttpHeaders": {
                "User-Agent": "Docker-Client/17.12.0-ce (linux)"
        }
}
Run Code Online (Sandbox Code Playgroud)

我需要"TXlQYXNzd29yZA=="用grep解压缩并解码它.
对于解码,我可以使用base64 -d(echo TXlQYXNzd29yZA== | base64 -d),但我不知道如何提取确切的行.
随着崇高,我几乎成功地抓住它:

(?!\"auth\": ) "(.*)"
Run Code Online (Sandbox Code Playgroud)

" TXlQYXNzd29yZA=="因为一开始的空间,我得到了,并不完美.
无论如何,我发现崇高的正则表达式与grep的正则表达式不同.
我尝试使用这些网络工具:
http ://www.ericagamet.com/wp-content/uploads/2016/04/Erica-Gamets-GREP-Cheat-Sheet.pdf https://regex101.com/

但我并没有成功.

我发现这grep 'auth":'给了我:

                "auth": "TXlQYXNzd29yZA=="
Run Code Online (Sandbox Code Playgroud)

似乎是一个好的开始.
我也尝试过,grep '(?!auth":)'或者grep '(?!auth":) (.*)'什么也没发生.

小智 5

我建议使用一个真正的json解析器,如jq而不是grep.

$ jq -r '.auths | .[] | .auth' /path/to/file
Run Code Online (Sandbox Code Playgroud)