scriptコマンドでログファイル viewだと文字化け^M

OKWave

2007-08-15 13:00

scriptコマンドでログファイル viewだと文字化け^M

Fedora Core4でscriptコマンドで
作業ログとして取得した後にviewコマンドでログを確認すると
改行位置に ^M の文字があり、
catコマンドではプロンプトの位置がずれてしまいます。
下記作業内容になります

[unix@local ~]$ script hoge
スクリプトを開始しました、ファイルは hoge です
[unix@local ~]$ hostname
local.com
[unix@local ~]$ date
2007年 7月 20日 金曜日 23:48:35 JST
[unix@local ~]$ exit
スクリプトを終了しました、ファイルは hoge です

[unix@local ~]$ cat hoge
スクリプトは 2007年07月20日 23時48分27秒
に開始しました[unix@local ~]$ hostname
local.com
[unix@local ~]$ date
2007年 7月 20日 金曜日 23:48:35 JST
[unix@local ~]$ exit

スクリプトは 2007年07月20日 23時48分37秒
に終了しました[unix@local ~]$

[unix@local ~]$ view hoge
スクリプトは 2007年07月20日 23時48分27秒
に開始しました[unix@local ~]$ hostname^M
local.com^M
[unix@local ~]$ date^M
2007年 7月 20日 金曜日 23:48:35 JST^M
[unix@local ~]$ exit^M

スクリプトは 2007年07月20日 23時48分37秒
に終了しました

以上、お手数お掛けいたしますが ご教授よろしくお願い致します。

良回答

手元の環境(FreeBSD + Teratermですが)で確認してみました。
私も知らなかったのですが、コンソール環境では改行を"CR+LF"で制御しているようですね。参考URLのページによれば、
--------------------
script はラインフィードやバックスペースも含め、 すべて をログファイルに書きこむ。これは普通のユーザが期待するものとは異なるかもしれない。
--------------------
とのことなので、画面制御用に出力したCRがそのまま残ってしまったのでしょう。
コマンドの出力時の改行はLFのはずなので、このあたりの変換をどこでやっているかは識者にお任せしたいと思います。

> 何故下記のように 秒 のところで改行になってしまい
これは、scriptのソースを見ればわかると思いますが、時刻情報が変数で与えられていて、変数には時刻情報+改行が含まれていることから起きている現象だと思います。英語で出力するようにすれば(環境変数LANGを"C"にするなど)きちんと見えると思います。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. ビジネスアプリケーション

    レガシーデータ基盤からの脱却が AI 活用の鍵--先進企業に学ぶクラウド移行の成功事例

  2. ビジネスアプリケーション

    AI 人材育成を単なる研修で終わらせない--事業を動かす AI スキル構築の 5 つのステップ

  3. ビジネスアプリケーション

    汎用 AI をビジネス仕様に。業務データを活かす AI アプリ開発の新しい前提「データ基盤」

  4. 仮想化

    コンテナ化だけで十分なのか。商用パッケージ運用の負荷を左右するOpenShiftの価値

  5. 経営

    月15万円から始めるSOC。セキュリティ人材を雇えない企業の、取引を止めない経営判断

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]