テキストファイルはバイナリとして認識されます。

テキストファイルはバイナリとして認識されます。

背景

lynx長年、私は自動ダンピング(cron経由)、処理(awksedおよび使用tr)、およびmailWebコンテンツ(bsd-mailx)を使用してきました。それは完全に動作しました。最近まで、Webサイトのセキュリティ証明書が期限切れになり、愚かなネットワーク管理者はあえて更新できませんでした。続行する前に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

おすすめ記事