curl -s -I -L example.com | grep 'HTTP\|Location'
여러 줄의 출력을 제공하는 특정 URL에 대한 리디렉션을 추적하는 데 사용하고 있습니다 .
$ curl -s -I -L google.com | grep 'HTTP\|Location'
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
HTTP/1.1 200 OK
출력의 각 줄을 연결하고 세미콜론으로 구분하고 싶습니다.
HTTP/1.1 301 Moved Permanently;Location: http://www.google.com/;HTTP/1.1 200 OK;
나는 이것을 시도했지만 curl -s -I -L google.com | grep 'HTTP\|Location' | tr '\n' ';' > file
이것은 행을 대체 \n
하고 ;
연결하지 않습니다.
$ curl -s -I -L google.com | grep 'HTTP\|Location' | tr '\n' ';' > file
$ cat file
HTTP/1.1 301 Moved Permanently;
Location: http://www.google.com/;
HTTP/1.1 200 OK;
어떤 아이디어라도 크게 감사하겠습니다. 감사해요.
답변1
HTTP 프로토콜에서는 헤더 줄이 \r\n
CR LF( )로 끝나야 합니다. 하나는 제거하고 다른 하나는 개행 문자로 변환해야 합니다.
$ curl -s -I -L google.com | grep 'HTTP\|Location' | tr -d '\r' | tr '\n' ';'
HTTP/1.1 302 Found;Location: http://www.google.eu/?gws_rd=cr&ei=Hx1JWIDpGordvATO65S4BQ;HTTP/1.1 200 OK;
답변2
-w
매개변수를 사용할 수도 있습니다 curl
.
> curl -fs -w "%{response_code},%{redirect_url}\n" -o /dev/null http://google.com
302,http://www.google.de/?gfe_rd=cr&ei=...