現在、Perlにて外部のcsvファイルを読み込み、"重複行"と"空白行"を削除するプログラムを作成しています。
重複行を削除する部分は
------
open(IN, "csvtime.csv");
@data = <IN>;
close(IN);
@data = grep {!$count{$_}++} @data;
open(OUT, "> csvtime.csv");
print(OUT @data);
close(OUT);
------
でできたのですが、空白行を削除する部分がわかりません。
申し訳ないのですが、お教えいただけないでしょうか。
また、空白行で最初の空白行は残すようにしたいです。
よろしくお願いいたします。
例)
読み出しデータ
-----
(ヘッダ1行目)
(ヘッダ2行目)
(ヘッダ3行目)
(必要な空白)
(ヘッダ4行目)
00:00:00,302
00:01:00,274
00:02:00,272
00:03:00,248
00:04:00,237
00:05:00,239
00:05:00,239
00:06:00,256
00:07:00,260
00:08:00,250
00:09:00,253
00:10:00,241
-----
加工後データ
-----
(ヘッダ1行目)
(ヘッダ2行目)
(ヘッダ3行目)
(必要な空白)
(ヘッダ4行目)
00:00:00,302
00:01:00,274
00:02:00,272
00:03:00,248
00:04:00,237
00:05:00,239
00:06:00,256
00:07:00,260
00:08:00,250
00:09:00,253
00:10:00,241
-----
No.2ベストアンサー
- 回答日時:
あれ、このコードで空白行削除されませんか?
読み出しファイルの「(必要な空白)」って最初の空白行ですよね?
>@data = grep {!$count{$_}++} @data;
これはハッシュに存在しないものだけ配列に格納してるんで、最初の空白行だけに整形されるはずですが。
空白行にひとつ以上のタブや半角・全角スペース文字が来たりしてたら動作しないとは思いますが。
実際のログファイルの容量が多く、手元になかったため、別のファイルを作成してテストをしていたのですが、
そのファイルにご指摘のように 空白 が入っていました。
実際のファイルを取り寄せ、実行したところ正常に動作していました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- その他(プログラミング・Web制作) Windowsのバッチファイルについてご教示ください 5 2023/07/25 20:23
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) vbaマクロについて 【1.csv】をもとに【商品.csv】に有るものを【有り.csv】として名前を 1 2023/05/18 07:58
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- Visual Basic(VBA) vbaマクロについて 次のようなマクロを組みたいです。 自分は初心者なので全くわかりません。 詳しく 8 2023/05/18 18:38
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlで特定行から特定行までを...
-
batファイルでrenameができませ...
-
エラー 'dir.h' : No such fi...
-
HTMLのフォームで画像と文...
-
ExcelをCSV書き出す場合のシー...
-
awkスクリプトでダブルクォーテ...
-
Perlの変数に文字数制限(容量...
-
readdir()で得られるファイル・...
-
ファイル全てを .xlsm に変更し...
-
while(<ハンドラ>) {} で行数を...
-
パスから最後のディレクトリだ...
-
テキストデータから指定した1...
-
一定時間が経過したフォルダの削除
-
htaccessで特定のディレクトリ...
-
ReadLineでの読み出し行を指定する
-
1行がやたら長いテキストをバッ...
-
while文がうまく動かない
-
chdirがうまくできない
-
openした後、closeしないでプロ...
-
VBAでタブ区切りテキストの保存...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlで特定行から特定行までを...
-
perlでcsvファイルを読む(ダブ...
-
CSVデータの編集の際の重複チェ...
-
CSVファイルのデータの行数を取...
-
Perlの初心者です。2重ループ...
-
CSVファイルをperlプログラムで...
-
Perlで空白行を削除
-
MATLAB std::exceptionエラー
-
Argument "\\\\n" isn't numeri...
-
cgiのログの書き方
-
Perlでの重複要素カウントにつ...
-
バッチファイルの作り方(CSV→...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
DOSコマンドで、標準出力を出力...
-
ExcelをCSV書き出す場合のシー...
-
openした後、closeしないでプロ...
-
close()で例外が投げられる理由
-
batファイルでrenameができませ...
-
VBAでCSVファイルを途中行まで...
おすすめ情報