やまものブログ

メモ書きブログです (^_^;A

スクリプトの絶対パスを環境変数の参照に置き換える sed コマンド

Qiita に投稿した記事の要約です。全文はこちらです。

例えば、こんなスクリプトがあったとします。

run0.sh
cat /home1/hoge/fuga/nagai/mohitotsu/data.txt | python /home1/hoge/fuga/nagai/mohitotsu/weekday1.py


上記の /home1/hoge/fuga/nagai/mohitotsu/ 環境変数 FILEPATH に置き換えてスッキリさせたい。
run1.sh
cat ${FILEPATH}/data.txt | python ${FILEPATH}/weekday1.py


これは以下のようにするとできます。2行目の sed コマンドで、「\x24」が$マークを示すことと、置換パタンをダブルクォート(")で囲むのがポイントです。

export FILEPATH=/home1/hoge/fuga/nagai/mohitotsu
sed -s "s:${FILEPATH}:\x24{FILEPATH}:g" run0.sh > run1.sh
chmod +x ./run1.sh