Perl初心者スレ(マジレス回答) (523レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
334
(2): デフォルトの名無しさん [] 2014/11/13(木)23:58 ID:bKuFahzS(1)
以下のような日付が下から上に並んでいるoriginal.txtがあるとします。
これを、日付を逆順にしたoutput.txtに整形するプログラムを作りたいです。
Windowsで、Batch fileとPerlで作れたらと考えています。よろしくお願いします。
<original.txt>
########## 20141203 ###########
DNINITIENK
FDKHJKDKKSK
・・・・・
########## 20141202 ###########
TUNINJKDF
NIGHALKDK
・・・・・・
########## 20141201 ###########
ABCDEFGHIJKE
LMNOPQRSTUV
・・・・・
<output.txt>
########## 20141201 ###########
ABCDEFGHIJKE
LMNOPQRSTUV
・・・・・・
########## 20141202 ###########
TUNINJKDF
NIGHALKDK
・・・・・・
########## 20141203 ###########
DNINITIENK
FDKHJKDKKSK
・・・・・・
337
(1): デフォルトの名無しさん [sage] 2014/11/14(金)02:49 ID:FARMtlO3(1/2)
>>334
perl -Mvars=%h -ane '$a = $F[1] if @F == 3 ; $h{$a} .= $_ }{ print $h{$_} for sort { $a <=> $b } keys %h’ original.txt

>>336
モジュールの共用は避けるべき
338
(1): デフォルトの名無しさん [sage] 2014/11/14(金)06:59 ID:Ul+u6aQZ(1)
>>334
use 5.016;
use warnings;

my $boundary = qr/^#+\s+\d+\s+#+\s*$/;

open(my $in, "<", "original.txt") or die;

my @data;
my $chunk = '';
while(<$in>){
if (/$boundary/ and (length($chunk) > 0)){
push @data, $chunk;
$chunk = '';
}
$chunk .= $_;
}
if (length($chunk) > 0){
push @data, $chunk;
}

$in->close;

open(my $out, ">", "output.txt") or die;
$out->print(reverse @data);
$out->close;
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.018s