Monday, November 19, 2007

Saturday, November 10, 2007

2つのファイルを行単位でマージする

例えば、ファイル123.txt


1
2
3
4

とファイルabc.txt

a
b
c
d

の2つのファイルを

1 a
2 b
3 c
4 d

のようにマージするためには、

j=0;for i in `cat abc.txt`;do j=$((j+1));\
echo `sed -ne "$j p" abc.txt` `sed -ne "$j p" 123.txt` ;done


でいけます。ただし(1)2つのファイルのうち行数の長い方をcatにかます(2)遅い、
というのがあります。

Friday, October 26, 2007

コマンドを実行した時刻を知る。

bash環境で、historyコマンドを実行すると、コマンドの履歴が
でますが、環境変数HISTTIMEFORMATを指定すると、そのコマンドを
実行した時刻も表示されます。

例えば、


export HISTTIMEFORMAT='%H:%M:%S '


としてhistoryコマンドを実行すると、


947 12:08:38 source ~/.bashrc
948 12:08:41 history
949 12:08:47 vi ~/.bashrc
950 12:09:00 source ~/.bashrc
951 12:09:02 history
952 12:19:19 cat ~/.bashrc
953 12:20:55 hisotry


な感じになります。ビルドなど大きな処理を繰り返さないようにするための
戒めになります。