ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

【シェル】文字列置換について

1つ上のディレクトリ のパスを取得するコマンドについて調査したので、ここにメモを残します。

実例

やりたいことは、[/home/test_user/work/sample]というパスに対して[/home/test_user/work]というパスを取得したい。

$ pwd
/home/test_user/work/sample

$ echo ${PWD%/*} 
/home/test_user/work

$ basename ${PWD}   
sample

$ basename ${PWD%/*}
work

まとめ

構文 動作
${変数/パターン/置換文字列} パターンに一致する部分を置換文字列に置き換える(1つだけ)
${変数//パターン/置換文字列} パターンに一致する部分を置換文字列に置き換える(すべて)
${変数#パターン} 先頭から最短一致でパターンに一致する部分を取り除く
${変数##パターン} 先頭から最長一致でパターンに一致する部分を取り除く
${変数%パターン} 末尾から最短一致でパターンに一致する部分を取り除く
${変数%%パターン} 末尾から最長一致でパターンに一致する部分を取り除く