bash
シェルスクリプトによる2つのディレクトリ内のHTMLファイルの比較
ちょっとした作業の手違いで、 もとは同じディレクトリをそれぞれ別々にコピーした上で、それぞれで独自に更新してしまった。
2つのディレクトリ(dir_a,dir_b)のそれぞれに追加で作成してしまったhtmlファイルがどれなのかを 探すためのシェルスクリプトを書いたのでメモ。
Makefileでカレントディレクトリ内のディレクトリだけを抽出して使う(サブディレクトリのみ列挙)
ブログ管理用の Makefile を書いているのだが、カレントディレクトリ以下にあるサブディレクトリだけを列挙したい。 サブディレクトリは、時間とともに変化するので、 Makefileに直に書くのはやめたい。
2009-07-08 追記
Cygwinだけでなく、Ubuntu(Linux)でもこのMakefileを使ったところ、CygwinとUbuntu で ls の出力形式が異なるため ここで説明した方法では、うまくディレクトリをリストアップできなくなってしまった。
Jython を使った代替案
パス+ファイル名の文字列からファイル名(ただし拡張子を取り除いた文字列)だけを取り出したい(Bash編)
images/ というディレクトリ以下に大量の png ファイルがある。 これを画像管理データベースに入れたいのだが、そのときそれぞれの画像に付けるIDを ファイル名から拡張子を取り除いたものを使用したい。
Bash ... brace expansion ブレース展開
bashには、複数のファイルを指定する便利な機能がある。
たとえば、
カレントディレクトリに、拡張子(*.jar)ファイルがたくさんある。
このうちのいくつかの jar だけを別のディレクトリにコピーしたい場合。
$ cp {foo,bar}.jar ~/
※foo.jar と bar.jar をホームディレクトリにコピー。
この機能はカレントディレクトリ以外でも使えるので、 とくにMakefile内から使う場合にわたしは重宝しています。
以下のような感じ... copyjars: cp /somewhere/lib/{foo,bar}.jar lib/
今月作成されたファイルだけを取り出したい(bash,awk,date)
apacheやtomcatのログファイルのように(設定にもよると思いますが)ファイル名自体に日付情報を 含めている場合は、特定の期間のログファイルだけを取り出すのは簡単だと思います。
たとえば2007年9月のファイルだけリストアップする場合...
$ ls | grep 2007-09
ふたつのファイルの日付を比較して、新しいかどうか調べる sh編
はじめに指定したファイルが、あとから指定したファイルより新しいかどうか を調べる。
Bash 拡張子を置き換えたい
bashでは、簡単に記述できるのだが、 何度書いても記述法方を記憶できない。
TIFFをPNGに一括で変換するスクリプト
たくさんの画面コピーを撮ってTIFF形式で保存していたのだが、 PNGに変換したくなったので、 カレントディレクトリにある.tiffファイルを全部同名の.pngファイルに変換する シェルスクリプトを書いたのでメモ。
Bash 今日の日付を適切にフォーマットして、ファイルの末尾に追加したい
テキストでメモを書いていると日付を書いておきたくなることがあるが 今日の日付を入れるのが面倒なので自動化したい。
dateコマンドを調べてみると、
$ date +%Y-%m-%d
2006-06-14
となるので、 これを利用して以下のように記述すれば、 foo.txtの末尾に日付を挿入できる。
PNGをGIFやJPEGに変換したい
通常の用途では、ウェブでイメージを扱うときは、PNG形式でほとんど間に合うのだが、 時々、GIFに変換する必要が生じることがある。 どうすればいいのか。
linux コマンドメモ
- cp -p オプション
- cp -i オプション
- rm -f オプション
- lsof コマンド
Bash での処理を代わりにpythonで行うときの記述方法あれこれ
bashは原始的すぎるので、bashにスクリプトを書きたくなるようなケースで、
代わりにpythonを使うことを決意。
その場合に、いつもbashで記述しているような処理をpythonでどのように書くのか、
の記録。