シェルスクリプトを組むときに,良く使うコマンド.
$ echo /foo/bar > path.txt $ cat path.txt /foo/bar
dir=`dirname $file`
$ cd ~/ksp/prog/script/src $ CURRENT_DIR=`pwd` $ echo $CURRENT_DIR /home/sakima/ksp/prog/script/src
pwdコマンドはバッククォートで括ることに注意します.
$ TARGET_DIR=/home/sakima/ksp $ CURRENT_DIR=/home/sakima/ksp/prog/script/src $ echo ${CURRENT_DIR#$TARGET_DIR} /prog/script/src
$ DIFF_PATH=/prog/script/src $ echo $DIFF_PATH | sed -e "s%/[A-Za-z0-9_\-]*%../%g" ../../../
以上の3つを組み合わせて,カレントディレクトリから,ある(カレントディレクトリよりも上位に位置する)ターゲットディレクトリへの相対パスを作成することができます.
$ CURRENT_DIR=`pwd` $ TARGET_DIR=~/ksp $ DIFF_PATH=`echo ${CURRENT_DIR#$TARGET_DIR}` $ RELATIVE_PATH=`echo $DIFF_PATH | sed -e "s%/[A-Za-z0-9_\-]*%../%g"` $ echo $RELATIVE_PATH ../../../
「href="..."」 の 「"」で括られた部分のみを抽出
sed -n -e '{ s/.*href="\([^"#?]*\).*$/\1/p }'