• ベストアンサー

テキストファイルからの文字の切り出し?

Perl初心者でほとほと困っております。 テキストファイル(例えば内容が"Hokkaido Sapporo")の中の最初の3文字めから8文字めまで切り出したい(”kkaido”)場合、どうやったらいいのでしょうか? ※2日間、徹夜ではまっております…

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

$text="Hokkaido Sapporo"; $get3_8=substr $text,3-1,8-3+1; #3文字目から6文字取り出す

AppleScripter
質問者

お礼

ありがとうございます(やったー!)。 無知を承知で質問致しますが、ファイルから入力する場合は(例えばperl -pe sample.pl < data.txt)はどのようにすれば良いのでしょうか? 恥ずかしい質問×2ですみません…

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>例えばperl -pe sample.pl < data.txt とした場合、 (まず、-eオプションは続けてスクリプトを書くオプションなので、sample.plの様にスクリプトファイルを指定する場合には、必要ありません) -pオプションで スクリプト全体が while(<>){ #ココ } continue { print ; } で囲まれたような感じになるので、 ファイルのそれぞれ1行のレコードが$_に読み込まれprintされるということを踏まえて #1での$textを$_に置き換えれば良いです。 ただ、ファイルの全てのレコードの3文字目から8文字目を切り出すのが目的なのかなとちょっと疑問ですが。

AppleScripter
質問者

お礼

何度もありがとうございます。非常に参考になりました。 Perlは初めてですが、なんとなく見えてきました。

回答No.2

>テキストファイル(例えば内容が"Hokkaido Sapporo")の中の最初の3文字めから8文字めまで切り出したい ?? = substr ( 対象文字列 , 開始位置 , バイト数 ); 注意としては、開始位置は、0から数えた数。 perlの場合、カッコは省略可能なことが多いですが、わかりにくさを増やすだけなので、 書くことを心がけた方が良い。 >ファイルから入力する場合は(例えばperl -pe sample.pl < data.txt)はどのようにすれば良いのでしょうか? perl sample.pl < data.txt で、sample.plスクリプトを実行し、標準入力として、data.txtを取り込みます。

AppleScripter
質問者

お礼

ありがとうございます。 2日間はまりましたが、先があかるくなりました…。また宜しくお願い致します。

関連するQ&A