grep
suporta expressões regulares.
Exemplo:
curl -i -X PUT -T test1.txt "http request"| grep -E "(HTTP|Exception)"
Eu quero analisar abaixo da resposta HTTP, mas não consigo descobrir como ajustar os valores separadamente usando uma única solicitação de onda.
Eu preciso dessas duas saídas. 1. status_code - (Array of HTTP status codes) 2. exceptionMsg - (Ocorreu uma exceção em uma variável)
HTTP/1.1 100 Continue
HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=utf-8
Content-Length: 173
Connection: close
{"RemoteException":{"exception":"IllegalArgumentException","javaClassName":"java.lang.IllegalArgumentException","message":"Failed to parse \"false?op=CREATE\" to Boolean."}}
Eu tentei isso
curl -i -X PUT -T test1.txt "http request"| grep HTPP
curl -i -X PUT -T test1.txt "http request" | grep Exception
Como posso fazer isso em um único comando?
grep
suporta expressões regulares.
Exemplo:
curl -i -X PUT -T test1.txt "http request"| grep -E "(HTTP|Exception)"
Você pode tentar salvar a saída de curvas em um arquivo temporário, obter seus códigos de status e, em seguida, excluir o arquivo.
...
# put response in a temporary file
curl -i http://www.example.com -o response.html
# initialise array to hold status_codes in
status_codes=()
status_codes+=$(sed -n "1p" response.html | grep -o "[[:digit:]]\{3\}")
status_codes+=($(sed -n "3p" response.html | grep -o "[[:digit:]]\{3\}"))
# ^ change this to the line numnber where the reponse code is
# print status_codes array (you probably want to comment this out)
declare -p status_codes
rm response.html