テキストファイル内の「誤改行」を修文したい!
perl は初心者です。よろしくお願いします。
★無名ハッシュを作り、リファレンスをハッシュに格納する方法を採用して、試行錯誤しています。
ファイル内容は、論理行の一行毎に行頭が ”AA” のように””で囲まれています。(例文後述)
しかし、行の中には「誤改行」されて正常な行が分割されていて、改行され行頭が””で囲まれていない行が存在します。(正常な行が2分割され、前半部分と後半部分が別な行文となっている)
この「誤改行」を、直前にある「元の正常な分割された前半の行文」と連結して、新たな正常な行としてファイルを修正し新規テキストファイルに書きこみたい。この際、分割されていた2個の「行文」は不要になったので、新規テキストファイルには書き込まない。
この修文作業が、途中まで出来ましたが最後の不要な行の削除が出来ないので、困っています。
------------------------------------------------------------
対象とするテキスト内容 (下記の行番号と文字列は例示です)
1. "ABCD",あいうえおかきくけこ123456789 XXXXXXXXXXXX
2. "EFGH",
3. さしすせそたちつてと9876543 XXXXXXXXXXXX # ←「誤改行」の行です。
4. "IGKL",なにぬねのはひふへほ123456789 XXXXXXXXXXX
5. "MNOP",まみむめもやいゆえよ987654321 XXXXXXXXXXX
6. "QRST",
7. らりるれろわいうえを123456789 XXXXXXXXX # ←「誤改行」の行です。
8.
9.
------------------------------------------------------------------
期待する修文の出力結果 (行内容は、元の行番号の順番と違っても結構です)
1. "ABCD",あいうえおかきくけこ123456789 XXXXXXXXXXXX
2. "EFGH",さしすせそたちつてと9876543 XXXXXXXXXXXX
3. "IGKL",なにぬねのはひふへほ123456789 XXXXXXXXXXX
4. "MNOP",まみむめもやいゆえよ987654321 XXXXXXXXXXX
5. "QRST",らりるれろわいうえを123456789 XXXXXXXXX
6.
7.
-----------------------------------------
私作成したスクリプトの要約は、
# 対象ファイルを一行づつ読み込む.
# 末尾の改行を削除
# 誤改行の場合を正規表現で探す。$ng_gyou に格納
# その他正常行は$ok_gyou, に格納する。
# $falag に誤改行の場合は0、正常な改行の場合は1を格納
# 誤改行の場合の行番号を$count_ng に、正常な改行の場合の行番号を$count_ok に、全部の行番号は$flag_1に格納する。
# 無名ハッシュを作り,リファレンスを $ref に格納する
$ref = {'nomber' => $flag_1,
'ng' => $ng_gyou,
'ok' => $ok_gyou,
'ngcount' => $count_ng,
'okcount' => $count_ok,
'flag' => $flag_ok
};
$WORD{$flag_1} = $ref; # nomber:$flag_1をキーにして,リファレンスをハッシュ:%WORDに格納
# このハッシュ「%WORDを」 読み込んで、処理しました。
foreach $flag_1 ( sort { $a <=> $b } keys %WORD) {
if($one->{ok} == 0) {
・・・・・・・・・・・・・・・・・
# 細部は、長くなるので省略します。( 誤改行の連結までは成功しましたが、・・・・・・??)
以上、質問内容が冗長になりましたが、どうか御教示下さい。