シェルでsedを使ってパス文字列からディレクトリ名,ファイル名,拡張子を抽出する
はじめに
ネタが無いのでありふれたネタを取り上げてみました。
シェルでパス文字列をディレクトリ名、ファイル名、拡張子に分割する方法はいくつかあります。
過去に投稿した Bash 組み込みの正規表現機能 を使ったり、Bash の変数を使ったり、 dirname
+ basename
コマンドを使ったり、 grep
を使ったり。
今回は sed
のみで実現してみます。
検証環境
sed
を使ったパス文字列分割の正規表現
以下のような sed
を使った正規表現を用いて、パス文字列を分割できます。
実行すると、スペース区切りで 4 つの情報が出力されます。
それぞれ以下のような情報となっています。
- 親ディレクトリパス
- ファイル名
- 拡張子なしファイル名
- 拡張子
実行例
ドット
.
が 2 つ以上存在する場合には、一番最初のドットから後ろを拡張子として認識しています。拡張子がない場合には、4 列目の情報が表示されません。
ひとこと
ほぼ以下の内容の丸パクリですね。
ディスカッション
コメント一覧
まだ、コメントがありません