my notebook blog : Bash
Java のパッケージ名を xargs と sed を使って別のパッケージ名に一括書きかえする
Eclpse などの IDE を使っていれば、Java パッケージ名の変更は簡単にできますが、 ここではターミナル上でさっと変更する方法をメモしておきます。
vim などでターミナルベースで Java のコードを書いていると、 いちいち IDE を起動するのは面倒なので、ターミナル上だけで操作が完結するこの方法は意外に重宝します。
カレントディレクトリの txt 拡張子のファイルを全部列挙した上でそれを html などに替えるシェルスクリプト
シェルスクリプトは便利だけど、拡張子の置きかえ記述がいつまでたっても覚えられない。
#!/bin/bash
for f in *.txt
do
txtfile=$f
htmlfile=${f%.*}.html
echo $txtfile $htmlfile
done
ディレクトリが存在している場合だけ処理する方法, ifでフロー制御 ( GNU Make )
Makefile で、CSVやSubversionレポジトリからソースツリーを作業ディレクトリにエクスポートしてビルドするような場合...
たとえば、
以下のようなMakefileを書いた場合ですが、
make clean したときに、作業ディレクトリが存在しないとエラーになります。
ファイルが存在している場合だけ処理する方法, ifでフロー制御 ( GNU Make )
たとえば、 patch.txt が存在していた場合だけ、patchを適用したい。存在していなければ何もしない そんな作業をする Makefile を書くには if を使えばよい。
How to use diff and patch
ブログ構築システムをつくっていて、 ディレクトリの深さに応じて、パスの指定方法がちょっとだけ異なるテンプレートファイルを 使う必要が出てきた。 このテンプレートをコピーしていると共通部分に変更が生じたときに 全部のテンプレートを書き直す必要が生じてしまうので、diff と patch を 使って対処することに。
Makefileでカレントディレクトリ内のディレクトリだけを抽出して使う
ブログ管理用の Makefile を書いているのだが、カレントディレクトリ以下にあるサブディレクトリだけを列挙したい。 サブディレクトリは、時間とともに変化するので、Makefileに直に書くのはやめたい。