シェルスクリプトを組むときに,良く使うコマンド. #contents * ファイル,ディレクトリ [#af3efb19] ** ファイルに出力 [#ia6084aa] $ echo /foo/bar > path.txt $ cat path.txt /foo/bar ** find [#z9d93e32] ** dirname [#vf59bf04] dir=`dirname $file` ** 現在のディレクトリパスをシェル変数にいれる [#ieedb34d] $ cd ~/ksp/prog/script/src $ CURRENT_DIR=`pwd` $ echo $CURRENT_DIR /home/sakima/ksp/prog/script/src pwdコマンドはバッククォートで括ることに注意します. ** 2つのパスの差を出力 [#ka9cc366] $ TARGET_DIR=/home/sakima/ksp $ CURRENT_DIR=/home/sakima/ksp/prog/script/src $ echo ${CURRENT_DIR#$TARGET_DIR} /prog/script/src ** /xxx(xは英数_-)を ../ に置換 [#vbb47b34] $ DIFF_PATH=/prog/script/src $ echo $DIFF_PATH | sed -e "s%/[A-Za-z0-9_\-]*%../%g" ../../../ ** 相対パスを作成 [#ye41ac96] 以上の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 ../../../ * ストリーム [#hfc0bc09] 「href="..."」 の 「"」で括られた部分のみを抽出 sed -n -e '{ s/.*href="\([^"#?]*\).*$/\1/p }'