• ベストアンサー

perlで作成したファイルが改行がこわれる

ここでよいのか解りませんが、質問させてください。 turbo linux6.5環境で、perlを使いデータ編集を行っています。 出力したファイルの文字コードはSJISになっています。 ただこのファイルをFTPでダウンロードすると改行部分がおかしくなっています。 秀丸などのエディタから見ると改行が入ったように見えるのですが、メモ帳で見ると、改行部分が縦棒記号に変っていて改行が入っていません。 対処方法を知っているかた教えてください。

  • 80yen
  • お礼率74% (123/165)
  • Perl
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • haporun
  • ベストアンサー率40% (230/562)
回答No.2

Perlをつかってるなら、出力するときに行の最後を\nじゃなくて、chr(13) . chr(10)にするとよいでしょう。

80yen
質問者

お礼

回答ありがとうございます。 chr(13) . chr(10)に変えてできました。 あせっていたので、大変助かりました。

その他の回答 (1)

  • Spur
  • ベストアンサー率25% (453/1783)
回答No.1

UNIXサーバでは改行コードが「LF」で、Macは「CR」 そしてWindowsは「CR+LF」です。 Linuxから改行コードを変換せずにftpしたファイルをWindowsのエディタで見れば、「CR」がありませんので、当然改行せず、どんどn続いてしまいます。そして、「LF」の部分は表示できないので縦棒のようになります。 ftpの時に改行コードを変換できるftpツールを使うか、ダウンロードした後で改行コードを変換してください。

80yen
質問者

お礼

回答ありがとうございます。 linuxとwindowsで改行コードが違うのを忘れていました。SJISとEUCの違いかと思って調べていました。 「CR+LF」の違いは勉強になりました。 ありがとうございます。

関連するQ&A

  • 改行コード

    Sn Uploaderと言う所でupload.cgiを 落としたのですがエラーが出ます。 多分改行コードが原因だと思うのですが、 upload.cgiの改行コードをLFにする仕方が分かりません。 windowsの場合は秀丸エディタでファイル→エンコードの種類 改行=LFにすれば良いのは分かりますが、 Linuxでは如何すれば良いのでしょうか? 全くの素人ですが宜しくお願いします。

  • 【テキスト】改行コードCR+LFの時だけ改行したい

    こんにちは。 HTMLを記述したテキストを含むCSVファイルを、 メモ帳で開くと1行で表示されるのですが、 それをexcelや、テキストエディターで開くと メモ帳で改行していないところで改行されてしまいます。 おそらく、テキストエディターでHTMLを書いた部分は途中で改行されないのですが、 Dreamweaverで書いた部分で改行が入っている様なのです。 調べると、改行コードというのがいくつかあり、メモ帳では改行されないが、 その他の高機能エディターでは改行するコードがあり、 それが途中に入っている様な感じです。 メモ帳で開く様に、改行コードCR+LFの時だけ改行して、 改行していないところでは改行を入れないで開きたいのです。 この、「メモ帳では改行しない改行コード」だけを取り除いて保存することはできるのでしょうか。 高額なテキストエディターでは、そのような事ができるようなのですが、 できればフリーソフトで完結したいです。 よろしくお願いします。

  • *.txtをexcelで読込、""内の改行で…

    年賀状の印刷のためにoutlookの顧客データを利用しています。 outlookでデータをエクスポートで*.txtファイルへ出力し、これをexcelへインポートして整理してから、accessへ渡し、年賀状宛名印刷しています。 通常、郵便番号、住所、氏名などであれば問題ないのですが、outlookのメモ欄にいろいろな過去のデータも記してあり、これに改行記号が含まれています。 今回、このメモも一緒にエクスポートし、顧客リストも合せて作成しようと思いました。 しかし、excelで*.txtファイルを読み込んだ時に、どうも、このメモ欄の中の改行記号で、excelの行が変わってしまうようです。 (秀丸で見たところ、"メモ欄内のデータ"となっているが、""内に改行記号があると、行が変わってしまう) 顧客データが沢山になり、いちいちこれを整えるのも面倒ですが、何か良い方法はあるのでしょうか。

  • エディターでは改行なのにメモ帳では↑

    Perlでプログラミングしています。 原因不明の改行に悩まされています。 あるスクリプトを通すと2行だった行が1行になります(csvファイル)。 それはさておき、 エディターではちゃんと2行なのにメモ帳で開くと1行です。 エディターはSHIT-JISのようです。 メモ帳の文字コードはなんなのでしょうか?

    • ベストアンサー
    • Perl
  • 改行コードについて

    Kent-Web(http://www.kent-web.com/)さんのショッピングカートを構築しています。 自分のサーバーでは簡単に構築できるのに、実際に運営するサーバーに移すとInternalServerErrorが出てしまいます。 いろいろ調べた結果、サーバーにアップすると改行部分が化けてきちんと改行されず、エラーが出ていることがわかりました。 FTPエディターなどで直接入力すると動くのですが、手で入力もしてられないので、FTPでアップしたいのですが、改行コードをeucに変換しても、なぜかサーバーに上げると改行コードが狂ってしまっています。 そこで質問なのですが、 1、一般的なサーバーでは、文字コード、改行コードともShift-JISで動く(いわゆるフリースクリプトを持ってきてサーバーに上げても動く)のに、このサーバーでは動かないので、Apacheなりの設定が一般的なサーバーと違うのではないかと考えています。 サーバー管理者にどうするように言えばいいでしょうか。 2、この問題がエディターによるものなのか、FTPクライアントによるものなのかわからないのですが、Shift-JISで書いたものをきちんとeucに変換し、FTPできるエディターとFTPクライアントはないでしょうか。 現在、エディターはViVi、FTPはFFFTPを使っています。 きちんとエディターが変換作業を行えているのかよくわからないです。 以上、よろしくお願いします。

    • ベストアンサー
    • CGI
  • Perlの開発どうしてますか?

    趣味でPerlで作成しているのですが、満足な環境が得られません。 希望としては、 1,.cgiにて実行結果が得られる。 2,文法エラー箇所を教えてくれる。 3,変数にジャンプすることができる。 いままでPerlDebbugger、秀丸エディタ、メモ帳をつかってきました。 できればフリーでいい環境が得られるソフトがありましたら教えてください。

    • ベストアンサー
    • CGI
  • 別のOSで作成されたテキストファイルの閲覧

    Linux環境で作成されたテキストファイルをWindows環境で閲覧するようなエディタはありませんでしょうか? EmEditorや秀丸で展開しても日本語部分が文字化けしてしまうのです。 ちなみに作成元の環境はredhat、エディタはemacsです。 お願いします。

  • Excelでセルをコピーしたときに、「改行」もコピーされるのが困る

    Excelで、 セル(何か言葉が入っている。)を選択して、右クリック-[コピー]をして、 エディタ(例えば、メモ帳や秀丸)に貼り付けると、 選択したセルの中身の言葉が貼り付きますが、 改行も貼り付いてしまうので、 貼り付けた直後で改行されてしまいます。 実はシートの保護がかかっています。 シートの保護を解除しないで、 この改行を貼り付けないようにする(改行されないようにする)にはどうすればよいのでしょうか。 Excel2000です。

  • linux Fedora10 のエディタ

    linux初心者なんですが、Fedora10を入れました。 今までは、Windowsで秀丸エディタを使ってホームページを作っていたのですが、秀丸エディタのように、保存すればFTP転送してくれるエディタはあるのでしょうか?

  • perlをコマンドラインで実行したい

    今はperlをコマンドプロンプト上でファイルをコンパイルして実行結果を別のテキストファイルに出力しています。(printなど) ただ、こまごまとした置換え・変換などいちいちテキストファイルにperlを書いてコンパイルして出力ファイルを開いて取り出すというやり方にわずらわしさを感じてきました。 簡単なスクリプトであれば、使い捨ての方がよく感じており、 コマンドプロンプトで試してみたのですが、長い文章やソースなどを変数にいれることができず、(改行がEnterにとられてしまう??)また、一行にずらずらとかかなくてはならないので、うまくいきません。 なにか、テキストエディタのような感じで、このようなperlスクリプトをコンパイルできるようなものはあるのでしょうか。 copalというものを使ってみたのですが、 ファイルハンドルなどが使えなかったのでだめでした。 どなたかご協力お願いします。

    • ベストアンサー
    • Perl