- ベストアンサー
perlで、文字列の中から何番目から何番目までの文字を抜き出したい
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) ;
- みんなの回答 (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) ;
その他の回答 (1)
- thatsthat
- ベストアンサー率55% (15/27)
何番目から何番目、についてはno1さんと同じですが、 元のソースをなるべく残そうとすると、 while(<IN>) { chomp; if (/(\S+)/) { print OUT substr($1, 12345, 12389-12345),"\n"; } } やりたいのはこういう事なのかな、とも思います。 これはこれで、 行の途中にスペースが入っていた時はどうなるのが正しいか? という問題はありますけど。
お礼
ありがとうございました!!!本当に助かりました!!!
お礼
ありがとうございました!!!本当に助かりました!!!