• ベストアンサー

perlでファイルの拡張子を除いた文字列の取得

perlでファイルの拡張子を除いた文字列を取得するにはどうすればいいんでしょうか? foo.txt --> foo aaa.pl --> aaa splitを使用して @array = split(/./,<filename>) $value = $array[0] としてもうまく取得できないんですが。。 よろしくお願いします。

  • Perl
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
回答No.1

> @array = split(/./,<filename>) @array = split(/\./,<filename>) にしてください。 /./は「任意の一文字」です。 \でエスケープすることで「ピリオド」という意味になります。 ↓参考URL

参考URL:
http://www.tohoho-web.com/wwwperl1.htm#Expr
steel_50130
質問者

お礼

初歩的なミスでした。 すいません。。。 あっさり解決です。 ありがとうございました。

関連するQ&A

  • ファイル名である文字列からbasenameを取得したい

    ファイル名である文字列からbasenameを(スマートに)取得したいです。 Perlでは何も考えなくてもできたのですが、C(もしくはC++)では次のようなやりかたしか思いつきません。 これでできているので問題ないのですが、何だかモヤモヤします。 また、このやり方では拡張子はピリオド含めて4文字であること前提なのもモヤモヤの原因です。 Perlのようにもっとスマートなやりかたはないでしょうか? --------------------------------- char filename[] = "test.dat"; char basename[128]; strncpy(basename, filename, strlen(filename)-4); basename[strlen(filename)-4] = '\0'; ---------------------------------

  • cshで拡張子を除いたファイル名を取得したい

    cshにてファイル名から拡張子を除いた文字列を取得したいと思っています。 例えば abc.txt -> aaa defg.log -> defg といった具合に。 *ファイル名の長さは固定長ではないです。 *拡張子の長さもできれば3文字固定にはしたくないです。(無理なら固定でもやむを得ませんが) 何か簡単でいい方法はないものでしょうか? 知恵を貸してください。 よろしくお願いします。

  • 文字列取得

    '/path1/path2/file1.txt' '/path1/path2/path3/file2.txt' 上記のようなpathがあった場合にファイル名(拡張子なし)の 文字列を取得したいのですがどのように良いでしょうか? 宜しくお願い致します。 awkで$4と指定すれば「file1.txt」の文字列を取得できるのですが パスの長さが定まっていないため$4ではなく最後の文字と指定する 記号はないでしょうか? echo /path1/path2/file1.txt |awk '{FS="/"; print $4}'

  • [初心者]perlで文字列抽出

    perlの超初心者です. 標準出力された文字の中から任意の文字列をperlで抽出したいのですが... 例えば, 1 lsコマンドでファイル一覧を表示 2 表示された中から任意の文字列とマッチするものを抽出 3 マッチした文字列の後ろの文字を知る(拡張子とか) 4 さらに,1~3を'perl hoge.pl'とコマンド打つだけのワンアクションでやりたい. という感じなのですが... 勉強を始めたばかりなので,どういったキーワードを勉強すればよいのか,見当つかない状態です... おそらく,私がしょうもない質問をしているのだろうとは思いますが, 何かヒントでも教えていただければ幸いです. 周りに詳しい人物もいないので,なんとか頑張って習得したいと思っています. よろしくお願いしますm(><)m

    • ベストアンサー
    • Perl
  • バッチファイルでテキストファイルの文字列を取得したい

    すみません、どなたか教えて下さい。 バッチファイル(test.bat)内で、他のテキストファイル(ok.txt)の文字列を取得したいです。 ok.txtは 20070614 TEST となってます。 この2つの文字列をそれぞれで取得する方法を教えて下さい。 よろしくお願い致します。

  • VBA split(文字列, ★) ★←複数デリミタ指定することできますか?

    VBAのsplit()関数ですが、 デリミタは1つしか指定できないのでしょうか? 例えば、 ------------------ 2005-5/23 19'02"40 ------------------ のような文字列を Perlの様に簡単に分割することは無理でしょうか? Array = split(文字列, /[ :\/\'\"-]/)

  • 文字列中からファイルパスのみを取得する方法

    テキストファイルからデータを1行ずつ読み取り、 その中にファイルパスがあれば他のファイルに書き出すというロジックを考えています。 文字列は 例えば  include ROOT_PATH."/class/test.txt"; という文字列で、この中から  /class/test.txt という文字列だけを取得したいのです。 現在、拡張子から1文字ずつ前の文字列をチェックしていって、「”」が見つかったらその間の文字列を ファイルパスとしようとしています。 これを1発で行ってくれるような関数等ははないでしょうか?   良いお知恵がありましたらご教授お願いします。

  • テキストファイルに書き込めない(ファイルの所有者と実行者の違いか?)

    テキストファイルにログを書き込む以下の処理があります。 aaa.pl -------------------- open Log,">>aaa.txt"; print Log 'test'; close Log; Web上(アパッチ)からこのaaa.plを実行すると 正常に処理されて、aaa.txtに書き込まれます。 (aaa.txtのオーナーはwww。属性は644) それとは別に、/etc/aliasesに 特定のメールアカウントにメールが送られた時に このaaa.plが実行されるように設定しているのですが mail_address: "|/ccc/aaa.pl" (パスは適当ですが、実際にはあっています) こちらからaaa.plが処理させても、 aaa.txtに文字列が書き込まれなくて困っています。 open Log,">>aaa.txt"; chmod 666,"aaa.txt"; ... とPerl側でパーミッションを変更させようとしても うまく変更されていません。処理もされません。 おそらくaliasesに設定したPerlの実行権限者が ファイルの所有者(この場合www)と異なる為 書き込みもchmodもうまくいかないと思うのです。 aliasesで実行させるアカウントは いったいどのようなアカウントなのでしょうか(binユーザーとか?) また、これを回避するにはどのようにすればよろしいでしょうか? どなたかご存知の方、どうぞよろしくお願い致します。

    • ベストアンサー
    • Perl
  • perlでランダムな文字列を作りたい

    perlでランダムな文字列を作成する簡単な方法はありませんか? 文字数と文字種を指定できるとありがたいのですが。 $foo = hoge(8,'a-zA-Z0-9'); みたいな感じでできるといいのですが。 お願いします。

    • ベストアンサー
    • Perl
  • perl ファイル内文字列抽出

    お世話になっております。 perlでファイルない文字データを抽出する作業をしたいですが、やり方が分からなくて、ご存知の方ぜひ教えて頂けばと思います。 001.html内の内容 <html> <head> </head> <body> テキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト<img src="aaa" \/>テキストテキストテキストテキストテキストテキストテキストテキスト<img src="bbb" \/><img src="ccc" \/><img src="aaa" \/>テキストテキストテキストテキストテキストテキストテキストテキスト</body> </html> 質問内容 (1)このなかの<img src="aaa" \/>イメージファイル名を抽出したいです。本文ではイメージファイルの拡張子はなしです。入力の間違いではないです。 (2)抽出した文字列をimg.txtファイルで出力 以上よろしくお願いします。

    • ベストアンサー
    • Perl

専門家に質問してみよう