シェルスクリプト内頻出コマンド

シェルスクリプトを組むときに,良く使うコマンド.

ファイル,ディレクトリ

ファイルに出力

$ echo /foo/bar > path.txt
$ cat path.txt
/foo/bar

find

dirname

dir=`dirname $file`

現在のディレクトリパスをシェル変数にいれる

$ cd ~/ksp/prog/script/src
$ CURRENT_DIR=`pwd`
$ echo $CURRENT_DIR
/home/sakima/ksp/prog/script/src

pwdコマンドはバッククォートで括ることに注意します.

2つのパスの差を出力

$ TARGET_DIR=/home/sakima/ksp
$ CURRENT_DIR=/home/sakima/ksp/prog/script/src
$ echo ${CURRENT_DIR#$TARGET_DIR}
/prog/script/src

/xxx(xは英数_-)を ../ に置換

$ 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 }'
Valid XHTML 1.1! home > コンピュータ > プログラミング >
リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Modified by 物理のかぎプロジェクト PukiWiki 1.4.5_1 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-jiPowered by PHP 5.2.17HTML convert time to 0.035 sec.