• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Perlで空白行を削除)

Perlで空白行を削除する方法

このQ&Aのポイント
  • Perlを使用して外部のcsvファイルから重複行と空白行を削除するプログラムを作成しています。
  • 重複行の削除は簡単にできますが、空白行の削除方法について情報をお探しです。
  • 最初の空白行を残しつつ、不要な空白行を削除する方法について教えてください。

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

  • ベストアンサー
  • taco0603
  • ベストアンサー率63% (21/33)
回答No.2

あれ、このコードで空白行削除されませんか? 読み出しファイルの「(必要な空白)」って最初の空白行ですよね? >@data = grep {!$count{$_}++} @data; これはハッシュに存在しないものだけ配列に格納してるんで、最初の空白行だけに整形されるはずですが。 空白行にひとつ以上のタブや半角・全角スペース文字が来たりしてたら動作しないとは思いますが。

pming
質問者

お礼

実際のログファイルの容量が多く、手元になかったため、別のファイルを作成してテストをしていたのですが、 そのファイルにご指摘のように 空白 が入っていました。 実際のファイルを取り寄せ、実行したところ正常に動作していました。 ありがとうございました。

その他の回答 (2)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.3

@data = <IN>; ――でデータを読み込んでるなら、空行が「\n」で表されてるので、 @data = grep {!$count{$_}++} @data; ――で、望み通り最初の空行だけが出力されると。

pming
質問者

お礼

別の回答の返答にも書かせていただきましたが、テストのデータに空白が挿入されていたため、 正常に削除ができていませんでした。 実際にチェックまでしていただきありがとうございます。

回答No.1

grepした後に、単純にforeachで回してみたら如何でしょう。 それとも、foreachは使いたくない??

pming
質問者

お礼

foreachを使ってみたいと思います。 ありがとうございます。

関連するQ&A