開発ツール/シフトJISのログをtailしたい
の編集
Top
/
開発ツール
/
シフトJISのログをtailしたい
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * シフトJISのログをtailしたい [#b50993ba] Windowsで出力されるShift_JISのログをCygwinのtailコマンドで監視したい。~ しかし、文字化けしてしまう。~ この様な場合の対処方法です。 #contents * 関連記事 [#b9b529ab] -[[Cygwinにnkfをインストールする方法>開発ツール/Cygwinにnkfをインストールする方法]] -[[tailコマンドで新規作成や削除されるファイルの監視方法>https://linux.just4fun.biz/?%E9%80%86%E5%BC%95%E3%81%8DUNIX%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/tail%E3%81%A7%E6%96%B0%E8%A6%8F%E4%BD%9C%E6%88%90%E3%82%84%E5%89%8A%E9%99%A4%E3%81%95%E3%82%8C%E3%82%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E7%9B%A3%E8%A6%96%E6%96%B9%E6%B3%95]] -[[PowerShellでheadとtailを実現する>PowerShell/PowerShellでheadとtailを実現する]] //#htmlinsert(win-top.html) * 動作確認環境 [#dd3a7e24] -Cygwin $ uname -a CYGWIN_NT-10.0 WINPC 3.1.5(0.340/5/3) 2020-06-01 08:59 x86_64 Cygwin - Windows 10 ver.1909 * iconvを使用する [#ae3ea453] iconvコマンドは文字コードを変換するコマンドになります。~ バッファリングされてしまうので以下のように記述します。 tail -F ログファイル名 | while read L do echo $L | iconv -f CP932 -t UTF-8 done 一行で書くと以下のようになります。 tail -F ログファイル名.txt | while read L; do echo $L | iconv -f CP932 -t UTF-8; done 変換文字コードを CP932 にしています。~ SJISでも同等に動作しますが、NEC,IBMが拡張した文字が非対象となります。~ 詳細は以下のリンクを参照してください。 -[[Shift_JIS と Windows-31J (MS932) の違いを整理してみよう>https://weblabo.oscasierra.net/shift_jis-windows31j/]] * nkfを使用する [#h351541d] Cygwinの場合は、nkfコマンドがないのでソースからコンパイルして使用します。~ nkfの入手とコンパイルは以下の記事を参考にしてください。 -[[Cygwinにnkfをインストールする方法>開発ツール/Cygwinにnkfをインストールする方法]] nkfコマンドを使った場合は、以下のようになります。~ 文字コードは自動判別するので、以下の記述で動作すると思います。 tail -F ログファイル名 | nkf -u オプションの -u はバッファリングしない指定となります。~ 文字コードを明示的に指定する場合は、以下のようになります。 tail -F ログファイル名 | nkf -u -S -w 以上、シフトJISのログファイルをUTF-8に変換して表示する方法でした。 #htmlinsert(win-btm.html)
タイムスタンプを変更しない
#navi(../) * シフトJISのログをtailしたい [#b50993ba] Windowsで出力されるShift_JISのログをCygwinのtailコマンドで監視したい。~ しかし、文字化けしてしまう。~ この様な場合の対処方法です。 #contents * 関連記事 [#b9b529ab] -[[Cygwinにnkfをインストールする方法>開発ツール/Cygwinにnkfをインストールする方法]] -[[tailコマンドで新規作成や削除されるファイルの監視方法>https://linux.just4fun.biz/?%E9%80%86%E5%BC%95%E3%81%8DUNIX%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/tail%E3%81%A7%E6%96%B0%E8%A6%8F%E4%BD%9C%E6%88%90%E3%82%84%E5%89%8A%E9%99%A4%E3%81%95%E3%82%8C%E3%82%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E7%9B%A3%E8%A6%96%E6%96%B9%E6%B3%95]] -[[PowerShellでheadとtailを実現する>PowerShell/PowerShellでheadとtailを実現する]] //#htmlinsert(win-top.html) * 動作確認環境 [#dd3a7e24] -Cygwin $ uname -a CYGWIN_NT-10.0 WINPC 3.1.5(0.340/5/3) 2020-06-01 08:59 x86_64 Cygwin - Windows 10 ver.1909 * iconvを使用する [#ae3ea453] iconvコマンドは文字コードを変換するコマンドになります。~ バッファリングされてしまうので以下のように記述します。 tail -F ログファイル名 | while read L do echo $L | iconv -f CP932 -t UTF-8 done 一行で書くと以下のようになります。 tail -F ログファイル名.txt | while read L; do echo $L | iconv -f CP932 -t UTF-8; done 変換文字コードを CP932 にしています。~ SJISでも同等に動作しますが、NEC,IBMが拡張した文字が非対象となります。~ 詳細は以下のリンクを参照してください。 -[[Shift_JIS と Windows-31J (MS932) の違いを整理してみよう>https://weblabo.oscasierra.net/shift_jis-windows31j/]] * nkfを使用する [#h351541d] Cygwinの場合は、nkfコマンドがないのでソースからコンパイルして使用します。~ nkfの入手とコンパイルは以下の記事を参考にしてください。 -[[Cygwinにnkfをインストールする方法>開発ツール/Cygwinにnkfをインストールする方法]] nkfコマンドを使った場合は、以下のようになります。~ 文字コードは自動判別するので、以下の記述で動作すると思います。 tail -F ログファイル名 | nkf -u オプションの -u はバッファリングしない指定となります。~ 文字コードを明示的に指定する場合は、以下のようになります。 tail -F ログファイル名 | nkf -u -S -w 以上、シフトJISのログファイルをUTF-8に変換して表示する方法でした。 #htmlinsert(win-btm.html)
テキスト整形のルールを表示する