シェルスクリプト内頻出コマンド のバックアップソース(No.3)

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

* ファイル,ディレクトリ [#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 }'

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.3.29HTML convert time to 0.002 sec.