2008-10-01から1ヶ月間の記事一覧

一発sort

セパレータの指定は-tオプション。 フィールドの位置は-kオプション。1から始まる。 数字でソートする場合は、-nオプションが必要。 % for i in $(perl -e 'for (1..15) { print "$_\n" }'); do echo "a.b.c.$i"; done | sort -t. -k4 -n a.b.c.1 a.b.c.2 a.…

seqコマンドの代替

seqコマンドが使えない場合、perlで数列を生成する手が使える。 % for i in $(perl -e 'for (0..10) { print "$_\n" }'); do echo $i; done 0 1 2 3 4 5 6 7 8 9 10

watchコマンドの代替

ターミナルで繰り返し一定間隔であるコマンドを実行したい場合に使える。 watchコマンドの代替手段。 $ while [ 1 ]; do date; sleep 1; done Sun Oct 19 09:20:49 JST 2008 Sun Oct 19 09:20:50 JST 2008 Sun Oct 19 09:20:51 JST 2008 [...]

exprを使わない算術演算

シェルスクリプトでexprを使うと非常に可読性が落ちる。そんな時は、こんなのが使える。 演算子の間に空白を入れてもOK。 bashでは整数演算のみできる。浮動小数演算はできない。zshならできる。 % echo $((1 + 2)) 3 % echo $((1 + 2.7)) bash: 1 + 2.7: sy…

数字を切り出す

% echo "hello123" | perl -ne 'print $1 if /(\d+)/' | hexdump -C 00000000 31 32 33 |123| 00000003

改行コードを落とす

cutで簡単に改行コードを削除できる。perlが使える環境なら、perlでも。 % echo "hello" | hexdump -C 00000000 68 65 6c 6c 6f 0a |hello.| 00000006 % echo -n "hello" | hexdump -C 00000000 68 65 6c 6c 6f |hello| 00000005 % echo "hello" | tr -d '\n…

awkとcutにおける区切り文字

以下は等価。 % echo "1.2.3" | awk -F. '{print $2}' 2 % echo "1.2.3" | cut -d. -f 2 2