令牌位于行的中間。我嘗試了一些可能性,但不匹配,例如:
sed -n '/matched/,$p' file
sed -n '/token=/,$p' file > out.txt
grep -oP '(?<=token: ).*' file
grep -Po 'token\s\K.*' file
我有這個:
207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/procedimento?filter[]=status,eq,SIM&filter[]=clinicaId,eq,50&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE HTTP/1.1" 200 71194 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/salas?filter=clinicaId,eq,50&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE HTTP/1.1" 200 303 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "PUT /api_producao.php/sala_horario/14 HTTP/1.1" 200 1 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/sala_horario?filter=salaID,eq,15&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE HTTP/1.1" 200 141 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:33 -0300] "GET /api_producao.php/aux_clinica_profissional?filter=clinicaId,eq,42&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4 HTTP/1.1" 200 2730 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:33 -0300] "GET /api_producao.php/profissional?filter=id,in,5,0,9,7,51,10,25,24,33,34,48,0,45,27,105,130,115,118,119,124,0,127&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4 HTTP/1.1" 200 10827 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:33 -0300] "GET /api_producao.php/sala_horario?filter=salaID,eq,15&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE HTTP/1.1" 200 141 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
并且需要這個:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
uj5u.com熱心網友回復:
您可以使用
grep -Po 'token=\K\S ' file
sed解決方案:
sed -nE 's/.*token=([^[:space:]] ).*/\1/p' file
請參閱正則運算式演示。詳情:
token=- 一個固定的子串\K- 匹配RESET運算子,丟棄到目前為止與當前匹配記憶體緩沖區匹配的文本\S- 一個或多個非空白字符。
查看在線演示:
#!/bin/bash
s='207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/procedimento?filter[]=status,eq,SIM&filter[]=clinicaId,eq,50&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE HTTP/1.1" 200 71194 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/salas?filter=clinicaId,eq,50&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE HTTP/1.1" 200 303 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "PUT /api_producao.php/sala_horario/14 HTTP/1.1" 200 1 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/sala_horario?filter=salaID,eq,15&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE HTTP/1.1" 200 141 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:33 -0300] "GET /api_producao.php/aux_clinica_profissional?filter=clinicaId,eq,42&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4 HTTP/1.1" 200 2730 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:33 -0300] "GET /api_producao.php/profissional?filter=id,in,5,0,9,7,51,10,25,24,33,34,48,0,45,27,105,130,115,118,119,124,0,127&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4 HTTP/1.1" 200 10827 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:33 -0300] "GET /api_producao.php/sala_horario?filter=salaID,eq,15&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE HTTP/1.1" 200 141 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"'
grep -Po 'token=\K\S ' <<< "$s"
輸出:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
sed 命令的意思
-n- 抑制默認行輸出E- 啟用 POSIX ERE 語法.*token=([^[:space:]] ).*- 找到任何文本,然后token=,然后將任何一個或多個非空白字符捕獲到第 1 組中,然后匹配行上的其余文本\1- 將匹配替換為第 1 組值p-print 替換的結果。
注意:
每當您需要提取的值后面沒有空格 協議名稱時,并且后面可能有其他查詢引數時token,您需要取反&以及空格。然后只需使用grep -Po 'token=\K[^&\s] ' fileand sed -nE 's/.*token=([^&[:space:]] ).*/\1/p' file。
uj5u.com熱心網友回復:
看起來你想要
sed -n 's/.*token=\([^ &]*\).*/\1/p' file
要么
grep -Po 'token=\K[^ &]*' file
uj5u.com熱心網友回復:
使用sed
$ sed -n '/GET/{s/.*=//;s/ .*//p}' input_file
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
uj5u.com熱心網友回復:
建議:
grep -oP '(?<=&token)[^ ]*' input.1.txt
uj5u.com熱心網友回復:
我注意到jwt你的問題中的標簽,JWT使用base64編碼,它以必須有2個鍵的標題開頭:alg并且typ,順序并不重要,所以前綴可能是{"alg"或者{"typ"在base64編碼之后給出eyJhbGci或eyJ0eXAi。考慮到上述考慮,我將AWK按照以下方式使用 GNU,讓file.txt內容為
207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/procedimento?filter[]=status,eq,SIM&filter[]=clinicaId,eq,50&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE HTTP/1.1" 200 71194 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/salas?filter=clinicaId,eq,50&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE HTTP/1.1" 200 303 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "PUT /api_producao.php/sala_horario/14 HTTP/1.1" 200 1 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/sala_horario?filter=salaID,eq,15&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE HTTP/1.1" 200 141 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:33 -0300] "GET /api_producao.php/aux_clinica_profissional?filter=clinicaId,eq,42&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4 HTTP/1.1" 200 2730 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:33 -0300] "GET /api_producao.php/profissional?filter=id,in,5,0,9,7,51,10,25,24,33,34,48,0,45,27,105,130,115,118,119,124,0,127&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4 HTTP/1.1" 200 10827 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
207.244.229.206 - - [28/Mar/2022:14:35:33 -0300] "GET /api_producao.php/sala_horario?filter=salaID,eq,15&transform=1&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE HTTP/1.1" 200 141 "-" "GuzzleHttp/6.5.5 curl/7.81.0 PHP/7.4.28"
然后
awk 'BEGIN{FPAT="(eyJhbGci|eyJ0eXAi)[-_=A-Za-z0-9] "}NF{print $1}' file.txt
輸出
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
說明:我使用FPAT(Field Pattern) 通知 GNU ,該欄位以RFC3548
中所述的使用 URL 和檔案名安全字母的 Base 64 編碼(ASCII 字母、ASCII 數字、減號、下劃線)中的 1 個或多個字符AWK開頭eyJhbGci或eyJ0eXAi后跟, 等號)
(在 gawk 4.2.1 中測驗)
uj5u.com熱心網友回復:
稍微冗長但更便攜的版本 - 它基本上做得很好$1=$1
在使用
FS自身定位令牌所在位置后,使用 1 次呼叫來
sub()清理不屬于 JSON 令牌的任何內容的尾部強制比較“
less than empty string”,它總是錯誤的 (0),任何提高到零次方的東西都awk變成數字一 (1),
從而允許里面的所有東西
`$( )`
成為$(1), 并使用一次$1=$1自動修剪兩端的空白
[m/n/g]awk '
BEGIN { _=(___=index(FS="^. [&]"\
"token=","."))~(__="")
} _<NF && \
\
($_=$(($!_=$___)^(sub("([& ].*)?$",__)<__)))' <<< "${s}"
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvEeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4. . .
經過測驗并確認可在 gawk 5.1.1、mawk 1.3.4、mawk 1.9.9.6 和 macOS nawk 上運行
— 4Chan 出納員
uj5u.com熱心網友回復:
使用 awk 您可以使用匹配功能,并token=在列印時考慮 6 個字符。
模式中的[^[:space:]] 部分匹配除空白字符之外的任何字符的 1 次或多次出現
awk 'match($0, /token=[^[:space:]] /) {
print substr($0, RSTART 6, RLENGTH-6)
}' file
輸出
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/451878.html
上一篇:正則運算式捕獲可變數量的專案?
