[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:36681] Re: ファイルの改行コードについて



武藤@Debianぷろじぇくとです。

イッパイフォローが付きそうですが(笑

At Mon, 7 Apr 2003 16:30:14 +0900,
横山貴士 wrote:
> ファイルの改行コードがおかしいと指摘がありまして
> 改行コードがLFになっていないことがわかりました。
> 改行コードの変換の方法をインターネットで探して
> 試みたのですが、失敗しました。

> OS         woody
> カーネル   2.4.18-3 
> エディタ   Xemacs21.4 (patch 6)
> perl       5.6.1
> 
> インターネットから改行コードの変換について以下の3つの方法が
> 記載してあるのをみつけて、試したところ全て変換後のファイルの内容が
> なくなって(ファイルはあるがソースコードの記述がない)いました。
> 1.
> $ sed -e 's/^M$//' <変換前ファイル名.cgi> 変換後ファイル名cgi
> 2.
> $ tr -d '\r' <変換前ファイル名.cgi> 変換後ファイル名.cgi
> 3.
> $ perl -p -e 's/\r//' <変換前ファイル名.cgi> 変換後ファイル名.cgi

> 上記の変換前ファイル名と変換後ファイル名は同一名を指定しました。
> 
> ファイルの中身が消えてしまったのは上記の方法の記述が悪かったのか?

根本的にリダイレクトの動作に誤解があるような。

> 上記の方法でうまくいくにはどのようにすればよいのか?

新しいファイルには別名を指定し、それから古いファイルにリネームして上書
きする、とか。
要は、同じ名前を指定すると、自己書き換えをしちゃって、入力も出力も消え
ちゃいます。

> ほかによい変換の仕方があるのか?

予想ですが、改行コードに限らず、文字エンコーディングもからみませんかね。
xemacsが入っているんだったらそれでファイルを開き、C-x Enter f をして、
euc-japan-unix を指定して保存。
あるいはnkfを使って nkf -ed 元ファイル名 > 新ファイル名; mv 新ファイル
名 元ファイル名。
自己書き換えじゃないとイヤだという向きには、debian JPパッケージですが
qkcで qkc -u ファイル名 とか。
-- 
武藤 健志@Debian/JPプロジェクト   (kmuto@debian.org, kmuto@debian.or.jp)
           株式会社トップスタジオ  (kmuto@xxxxxxxxxxxxxxx)
URI: http://www.topstudio.co.jp/~kmuto/ (Debianな話題など)