如何使用 sed、grep 或 awk 只获取令牌?

发布于 2025-01-17 09:01:16 字数 5228 浏览 4 评论 0原文

令牌位于线条中间。 我尝试了一些可能性,但不匹配,例如:

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%5B%5D=status,eq,SIM&filter%5B%5D=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

The Token is on middle of lines.
I tried some possibilities, but not match, like:

sed -n '/matched/,$p' file
sed -n '/token=/,$p' file > out.txt
grep -oP '(?<=token: ).*' file
grep -Po 'token\s\K.*' file

I have this:

207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/procedimento?filter%5B%5D=status,eq,SIM&filter%5B%5D=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"

And need this:


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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

彻夜缠绵 2025-01-24 09:01:16

您可以使用

grep -Po 'token=\K\S+' file

Sed 解决方案:

sed -nE 's/.*token=([^[:space:]]+).*/\1/p' file

请参阅正则表达式演示详细信息

  • token= - 固定子字符串
  • \K - 匹配重置运算符,丢弃当前匹配内存缓冲区中迄今为止匹配的文本
  • \S+ - 一个或多个非空白字符。

请参阅在线演示

#!/bin/bash
s='207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/procedimento?filter%5B%5D=status,eq,SIM&filter%5B%5D=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=< /code>,然后捕获任何将一个或多个非空白字符放入第 1 组,然后匹配行 \1 上的其余文本
  • - 将匹配项替换为第 1 组值
  • p - p打印替换的结果。

注意

每当您需要提取的值后面没有空格+协议名称,并且token后面可以有其他查询参数时,您需要否定< code>& 以及空格。然后只需使用 grep -Po 'token=\K[^&s]+' file 和 sed -nE 's/.*token=([^&[:space :]]+).*/\1/p' 文件。

You can use

grep -Po 'token=\K\S+' file

Sed solution:

sed -nE 's/.*token=([^[:space:]]+).*/\1/p' file

See the regex demo. Details:

  • token= - a fixed substring
  • \K - match reset operator that discards the text matched so far from the current match memory buffer
  • \S+ - one or more non-whitespace chars.

See the online demo:

#!/bin/bash
s='207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/procedimento?filter%5B%5D=status,eq,SIM&filter%5B%5D=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"

Output:

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

The sed command means

  • -n - suppress default line output
  • E - enable POSIX ERE syntax
  • .*token=([^[:space:]]+).* - find any text, then token=, then capture any one or more non-whitespace chars into Group 1 and then match the rest of the text on the line
  • \1 - replace the match with Group 1 value
  • p - print the result of the substitution.

NOTE:

Whenever the value you need to extract has no space + protocol name right after it, and there can be other query params after the token one, you need to negate & as well as whitespace. Then just use grep -Po 'token=\K[^&\s]+' file and sed -nE 's/.*token=([^&[:space:]]+).*/\1/p' file.

深海少女心 2025-01-24 09:01:16

看起来你想要

sed -n 's/.*token=\([^ &]*\).*/\1/p' file

grep -Po 'token=\K[^ &]*' file

Looks like you want

sed -n 's/.*token=\([^ &]*\).*/\1/p' file

or

grep -Po 'token=\K[^ &]*' file
Oo萌小芽oO 2025-01-24 09:01:16

使用 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

Using 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
茶色山野 2025-01-24 09:01:16

建议:

 grep -oP '(?<=&token)[^ ]*' input.1.txt

Suggesting:

 grep -oP '(?<=&token)[^ ]*' input.1.txt
小伙你站住 2025-01-24 09:01:16

使用fs本身以定位令牌,

  1. 本身基本上是在做好ole'$ 1 = $ 1本身以定位令牌在哪里, P>

  2. 使用1个调用sub()清洁的尾端
    任何不属于JSON令牌的东西

  3. 的任何内容强制比较“ 少于空字符串”,
    这总是错误的(0),任何提出的东西
    awk中零第三功能成为数字一(1),

从而允许内部的整个内容

`$( )` 

成为$(1),然后再使用一段时间$1=$1 to auto-trim blanks at both ends

[m/n/g]awk '

 BEGIN { _=(___=index(FS="^.+[&]"\
            "token=","."))~(__="")
 } +_<NF &&  \
              \
($_=$(($!_=$___)^(sub("([& ].*)?$",__)<__)))' <<< "${s}"
  • eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE

  • eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4


经过测试并确认在Gawk 5.1.1,Mawk 1.3.4,Mawk 1.9.9.6和Macos Nawk上

工作

A slightly more verbose but also more portable version - It's basically doing the good ole' $1=$1

  1. after using FS itself to locate where the token is,

  2. use 1 call to sub() to clean the tail end of
    anything that isn't part of the JSON token

  3. force a comparison of "less than empty string",
    which is always false (0), and anything raised
    to zero-th power in awk becomes a numeric one (1),

thus allowing the entirety of the stuff inside

`$( )` 

to become $(1), and using one more time of $1=$1 to auto-trim blanks at both ends

[m/n/g]awk '

 BEGIN { _=(___=index(FS="^.+[&]"\
            "token=","."))~(__="")
 } +_<NF &&  \
              \
($_=$(($!_=$___)^(sub("([& ].*)?
quot;,__)<__)))' <<< "${s}"
  • eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMSwiaXNzIjoiaHR0cHM6Ly9zZHJwb3J0by5jb20uYnIvYmFjay9vZG9udG9sb2dpYS9wdWJsaWMvYXBpL3YxL3NpZ25pbiIsImlhdCI6MTY0ODQ4Njk4MCwiZXhwIjoxNjQ4NDkwNTgwLCJuYmYiOjE2NDg0ODY5ODAsImp0aSI6IndsZVNhZ1ppb3VWVUFRb2cifQ.gnAzxxtWNdUY_Ech0Lj5v8TNMvSTOnjLWLHYhY3eMvE

  • eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExMiwiaXNzIjoiaHR0cHM6Ly93d3cuc2RycG9ydG8uY29tLmJyL2JhY2svb2RvbnRvbG9naWEvcHVibGljL2FwaS92MS9zaWduaW4iLCJpYXQiOjE2NDg0ODc1OTksImV4cCI6MTY0ODQ5MTE5OSwibmJmIjoxNjQ4NDg3NTk5LCJqdGkiOiJUZEtqTnlnWWxiZkJmVEpWIn0.ZNIZJtJQS8BbITnkgGL8j-8g7q47nZ7TTdIA2-6s2k4
    .
    .
    .

Tested and confirmed to work on gawk 5.1.1, mawk 1.3.4, mawk 1.9.9.6, and macOS nawk

— The 4Chan Teller

掩耳倾听 2025-01-24 09:01:16

通过 awk,您可以使用 match 函数,并且打印时考虑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

With awk you can use the match function, and take the 6 characters of token= into account when printing.

The [^[:space:]]+ part in the pattern matches 1 or more occurrences of any character except whitespace characters

awk 'match($0, /token=[^[:space:]]+/) {
  print substr($0, RSTART+6, RLENGTH-6)
}' file

Output

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
梓梦 2025-01-24 09:01:16

我注意到jwt在您的问题中标记, /a>使用base64编码,它从必须具有2个键的标头开始:alg and typ,订单并不重要,因此前缀可能是{ “{” typ“ base64-incodings给出eyjhbgcieyj0exai。 上述考虑因素,我将使用gnu awk以下方式,让file.txt contents

207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/procedimento?filter%5B%5D=status,eq,SIM&filter%5B%5D=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(字段模式)要通知gnu awk该字段以eyjhbgcieyj0exai 开始,然后随后是 base 64编码的1个或更多字符使用URL和文件名安全字母
rfc3548 符号)

(在GAWK 4.2.1中测试)

I noticed jwt tag in your question, JWT uses base64 encoding, it starts with header which must have 2 keys: alg and typ, order is not important so prefix might be either {"alg" or {"typ" which after base64-encodings gives eyJhbGci or eyJ0eXAi. Taking above considerations in account I would use GNU AWK following way, let file.txt content be

207.244.229.206 - - [28/Mar/2022:14:35:32 -0300] "GET /api_producao.php/procedimento?filter%5B%5D=status,eq,SIM&filter%5B%5D=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"

then

awk 'BEGIN{FPAT="(eyJhbGci|eyJ0eXAi)[-_=A-Za-z0-9]+"}NF{print $1}' file.txt

output

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9

Explanation: I use FPAT (Field Pattern) to inform GNU AWK that field starts with eyJhbGci or eyJ0eXAi which is then followed by 1 or more of characters from Base 64 Encoding with URL and Filename Safe Alphabet
as described in RFC3548 (ASCII letters, ASCII digits, minus, understrike, equal sign)

(tested in gawk 4.2.1)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文