シェル

teeコマンドをパイプ接続したときの挙動

teeコマンドの挙動でハマったのでメモ。シェルスクリプト内でteeコマンドを次のような感じで使っていたら、out1.txtをcatする部分でファイル無しエラーになるケースがあった。 cat hogehoge | (なんかの処理) | tee out1.txt | (続きの処理) > out2.txt cat …

こわくないシェル本『シェルスクリプト高速開発手法入門』

シェルスクリプトによる開発手法の解説本が発売されるって話題になっています。フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門タイトルからして普通じゃない雰囲気が漂ってます。著者は「USP友の会」会長の上田さんと弊社の後藤。とい…

プレフィックスが同じファイル毎に最新のファイルのみ抽出するワンライナー

次のような感じで、名前の一部分が同じファイルが複数グループあるような場合、グループごとに最新のファイルだけを抽出したい。 $ ls -lT total 0 -rw-r--r-- 1 user staff 0 5 30 20:28:26 2014 foo.bar.001 -rw-r--r-- 1 user staff 0 5 30 20:28:29 2014…

awkでテキストファイルを分割する

awkを使って、テキストファイルを1行ずつ任意の数のファイルに振り分けたい。例えば $ cat target 1 0000007 セロリ 20060201 117 2 0000007 セロリ 20060202 136 3 0000007 セロリ 20060203 221 4 0000017 練馬大根 20060201 31 5 0000017 練馬大根 2006020…

同一キーの最後の行を出力するワンライナー

Tukubaiの $ getlast 1 1 と同じことを、getlastを使わないでgawkだけでやってみる。 $ cat target 0000007 セロリ 20060201 117 0000007 セロリ 20060202 136 0000007 セロリ 20060203 221 0000017 練馬大根 20060201 31 0000017 練馬大根 20060202 127 000…

dateコマンドで○秒後を計算する方法

メモ date -j -v+<秒数>S -f %Y%m%d%H%M%S <元の時間> +%Y%m%d%H%M%Sex) 現在より1秒後 currenttime=$(date +%Y%m%d%H%M%S) date -j -v+1S -f %Y%m%d%H%M%S ${currenttime} +%Y%m%d%H%M%S