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. セキュリティ

    ISMSとPマークは何が違うのか--第三者認証取得を目指す企業が最初に理解すべきこと

  2. セキュリティ

    情報セキュリティに対する懸念を解消、「ISMS認証」取得の検討から審査当日までのTo Doリスト

  3. 運用管理

    IT管理者ほど見落としがちな「Chrome」設定--ニーズに沿った更新制御も可能に

  4. セキュリティ

    従来型のセキュリティでは太刀打ちできない「生成AIによるサイバー攻撃」撃退法のススメ

  5. セキュリティ

    シャドーITも見逃さない!複雑化する企業資産をさまざまな脅威から守る新たなアプローチ「EASM」とは

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

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

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

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