プロが教える店舗&オフィスのセキュリティ対策術

perl初心者です。
文字列の中から何番目から何番目までの文字を抜き出して
別のファイルにうつす、
というスクリプトを書いています。
でも、うまくうごいてくれません。。。
恐らく、根本的におかしな部分があると思いますし、
さらに、何番目から、は指定できていても、
次の数字は文字数を意味しているのだと思いますので、
意図するものと違う気がします。
ただ、何番目から何番目
という情報だけを入力してできたら作業上大変助かります。
本当に困っております。
アドバイスをいただけると幸いです。
大変急いでおります(;;)。
宜しくお願いします!!!

#!/usr/bin/perl ;

open(IN, "test.txt") or die ;

open(OUT, ">after_test");

while(<IN>) {
chomp ;
if (/(\S+)/) {

\S = $S

substr ($S, 12345, 12389) = {

print OUT "$_\n";
}

}
}
close (IN) ;
close (OUT) ;

A 回答 (2件)

これでどうでしょう?


12345番目から12389番目まで抜き出してます

#!/usr/bin/perl

my $content = '';
open(IN, "test.txt") or die ;
{
local $/;
$content = <IN>;
}
close (IN);

open(OUT, ">after_test");
print OUT substr ($content, 12345, (12389 -12345 ) );
close (OUT) ;
    • good
    • 0
この回答へのお礼

ありがとうございました!!!本当に助かりました!!!

お礼日時:2007/03/22 12:48

何番目から何番目、についてはno1さんと同じですが、


元のソースをなるべく残そうとすると、
while(<IN>) {
 chomp;
 if (/(\S+)/) {
  print OUT substr($1, 12345, 12389-12345),"\n";
 }
}
やりたいのはこういう事なのかな、とも思います。

これはこれで、
行の途中にスペースが入っていた時はどうなるのが正しいか?
という問題はありますけど。
    • good
    • 0
この回答へのお礼

ありがとうございました!!!本当に助かりました!!!

お礼日時:2007/03/22 12:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!