アウトプットができる技術者に

it's a time to take a new step !

Linux/Unix

圧縮Scriptサンプル

sapmle1 30日経過したファイルを圧縮して、arcchiveディレクトリへ find log -maxdepth 1 -mtime +30 -type f | xargs -r gzip find log -maxdepth 1 -name "*.gz" | xargs -r -i mv {} log/arch sample2 30日経過したファイル(複数)を1つに圧縮して、arch…

sed 基本コマンド

command command description d delete i insert a append p print q quit y 1文字づつ置換 s 文字列を置換 address 複数コマンド実行 sed '1d; 3d' 1行目と3行目を削除 複数行指定 sed '1,5d' 1 - 5行目までを削除 指定行以外を実行 sed '1!d' 1行目以外を…

screen

screenはunix上で複数画面にできる素敵ツール clientからのssh接続が切れても、sessionが残るので 長時間のバッチ処理とかに便利 suする前に実行する必要有 コマンド 画面操作 C-a S 画面分割。横分割のみ。 C-a Q 分割終了 C-a x 画面を閉じる C-a d デタッ…

Batch処理 Dateコマンドで年月を求める際の注意点

Dateコマンドで先月を求めるときは、注意 こうやって書いてはいけない date -d"${ymd} 1 month ago" +"%Y%m"月末にきちんと動作しないため # NGなケース ymd=20140329 date -d"${ymd} 1 month ago" +"%Y%m" 201403 # 28までは必ず先月中に日付があるので問題…

awk 複数ファイル 出力

こんな感じで書ける { print ($1,$2) >> "tmp/out1.txt" print ($3,$4) >> "tmp/out2.txt" } awk 目次 - How might I ...

Java bashでcompileする

まぁ、書き方はいくらでもあると思うけど。 こんな よくあるディレクトリを想定した場合 ./lib ... library ./src ... source code ./bin ... binary (compiled java code)こんな感じで書ける export CLASSPATH=`find lib -type f -name "*.jar" | paste -s …

圧縮解凍コマンド

gzでの圧縮 tar zcvf sample.tar.gz target_dir gzでの圧縮(ディレクトリ変更) tar zcvf sample.tar.gz -C target_dir . gzでの解凍 tar zxvf sample.tar.gz ディレクトリを変更下の圧縮の解説 ディレクトリごと 圧縮すると解凍時に ディレクトリ構成も残…

Bash シェルスクリプトで標準入力を受け取る

cat - で 標準入力を受け取り、利用できる。 #!/bin/sh if [ -p /dev/stdin ] ; then echo "stdin" cat - else echo "nothing stdin" fi 変数の格納する例 #!/bin/sh if [ -p /dev/stdin ] ; then a=$(cat -) echo "input string is ${a}" else echo "nothin…

find mtime の挙動

24時間以内に修正されたファイル find ./ -mtime -1 -type f 48時間以内に修正されたファイル find ./ -mtime -2 -type f 24時間以上 経過したファイル *以上の場合は0から開始になることに注意 find ./ -mtime +0 -type f 24~48時間の間に修正されたファイ…

Unix/Linux上でのエンコード/改行コードの変換

1. ファイルの状態を確認する 2. 文字コードを変換する ファイルの状態を確認する 改行コードの確認 od コマンドで確認できます。vi なら「set ff」 cat hello.txt -- hello world はろー わーるど # こうなる od -c hello.txt -- 0000000 h e l l o \r \n w…

子プロセスのプロセスIDを取得するコマンド

pgrepコマンドで取得できます。 いろいろオプションがあるけど、ここでは一番単純な 自分のプロセスIDを指定する方法 pgrep -P ${pid}例えば、現在のプロセスの子プロセスIDから取得するのはこんな感じ。 pgrep -P $$再帰的に kill していきたい場合とかに便…

ログとか旧いファイルの圧縮

フと書いて、これはなかなか使えるコマンドだなと思ったのでメモ30日以降 経過したlogファイルを圧縮。bzip2形式 find ./ -maxdepth 1 -type f -mtime +30 -name "*.log" | xargs -r bzip2 -vxargs の -r は 結果がなかった場合に、後続の圧縮コマンドを実行…

sedって、改行コードが置換・削除できないのね。。

Unix系のコマンドはよくはまります。「とりあえず、簡単にシェルで書いてみて」とかよく言われるけど、 自分的には、Javaの方が95%ぐらい早く作れます。で、 sed s/\n//g なんてことは、できないみたいです。改行コードを削除したいときは、 tr -d '\n'