텍스트 파일이 바이너리로 인식됩니다.

텍스트 파일이 바이너리로 인식됩니다.

배경

lynx몇 년 동안 저는 자동 덤핑(cron을 통해), 처리( awk, sed및 사용 tr), 그리고 mail웹 콘텐츠(bsd-mailx)를 사용해 왔습니다. 그것은 완벽하게 작동했습니다. 최근까지 웹 사이트 보안 인증서가 만료되어 어리석은 네트워크 관리자가 굳이 갱신할 수 없었습니다. 이제 lynx계속하기 전에 인증서에 대해 주저하고 사용자 입력을 기다리면서 자동화된 솔루션이 실패합니다.

시도해 볼 수 있는 솔루션

그래서 다른 해결책을 찾기 시작했습니다. 스위치 curl가 있어서 기대가 됩니다 --insecure. 실제로 이를 사용하면 페이지 텍스트를 다운로드하여 이메일 본문에 삽입할 수 있는 보다 표준적인 텍스트 출력으로 처리한 다음 파일로 저장할 수 있습니다.

charset=binary그러나 내가 겪고 있는 문제는 파일이 (의 출력에 따라 ) 시스템에 의해 어떻게든 처리되고 있다는 것입니다. file -i아마도 파일에 라틴 문자가 아닌 알파벳(키릴 문자)의 텍스트가 포함되어 있기 때문일 것입니다. 그래서 cat내가 나 자신에게 보내는 이메일의 본문에 파일 내용을 넣으 려고 하면 메일 프로그램(bsd-mailx)이 그것을 이메일에 삽입하는 대신 첨부 파일로 처리하려고 합니다. 이는 내가 원하는 것이 아닙니다. 의 텍스트.

관련된 모든 문제를 이해하는 데 어려움을 겪고 있기 때문에 지금까지 해결책을 찾지 못했습니다.

질문

  • 파일이 바이너리로 저장/인식되지 않도록 하는 방법이 있습니까?
  • 아니면 어떻게든 바이너리에서 유효한 문자 집합으로 변환할 수 있나요?

    • 파일 내용을 클립보드에 복사한 다음 새 텍스트 파일에 붙여넣으면 내가 만든 모든 내용이 작동합니다. file -i표시되며 내용을 이메일 본문에 charset=utf-8성공적으로 가져올 수 있지만 내용은 고려되지 않습니다. cat첨부 파일. 하지만 저는 cron 작업으로 자동화할 수 있는 것을 찾고 있기 때문에 이것은 제가 바라는 솔루션이 아닙니다.

첨부된:아래에서도 비슷한 문제가 있었던 기억이 나는데, lynxIIRC 호출 시 스위치를 추가하여 해결했습니다.-display_charset=UTF-8lynx

고쳐 쓰다

여기에서는 Lucas의 제안을 사용하여 작동합니다. 단순화하고 더 우아하게 만드는 쉬운 방법이 있을 것이라고 확신하는 다소 투박한 2단계 프로세스이지만 작업이 완료됩니다. 누구든지 개선 사항을 제공할 수 있나요? 분명히 및 는 기본적으로 html 태그와 불필요한 공백을 제거하는 내가 사용하는 실제 및 명령을 대체합니다.
curl --insecure https://my.url.html >/home/user/file.html lynx -display_charset=UTF-8 -dump -nonumbers -nolist /home/user/file.html | sed fu begin | sed fu end | tr fu >/home/user/file.txt cat /home/user/file.txt | mail -s "Today's file" [email protected]
sed futr fusedtr

답변1

curl.NET 대신 HTTPie를 사용하십시오 lynx. 이 HTTP 클라이언트에는 --verify noSSL 인증서 확인을 건너뛸 수 있는 옵션이 있습니다. HTTPie를 사용하는 것은 매우 간단합니다.

http --verify no -F https://google.com

또한보십시오HTTPie 웹사이트좀 남았어좋은 예사용. HTTPie 옵션에 대한 추가 정보:

man http

관련 정보