• ベストアンサー

文字列取得

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

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

basenameでいいと思いますが、awkでやるなら awk -F'/' '{print $NF}' です。 オプションで指定すればBEGIN節を作る必要はありません。

その他の回答 (2)

回答No.2

basenameはいかが? 詳しくは man basename

totmon
質問者

お礼

ありがとうございました。

  • thatsthat
  • ベストアンサー率55% (15/27)
回答No.1

NFが使えます・・が、 FSの設定はBEGINでやらないとダメみたいです。 echo /path1/path2/file1.txt |awk 'BEGIN{FS="/"}{print $NF}'

totmon
質問者

お礼

ありがとうございました。

関連するQ&A