2012/05/26

[Perl] mkdirでパーミッション777にならない


mkdir "[dir_path]", 0777 or die &procEnd("[WARNING]error:mkdir 0777 [dir_path]");
↑で 777ディレクトリが作れなくて ナンデジャボケー(# ゚Д゚)コラー って暴れてたら
perlでmkdirするときは umask設定を解除しないとダメらしいとのこと。ぐはー!!
↓魔法の言葉
umask(0);
mkdir ~~
アリガトウゴザイマス<(_ _)>




Vim コマンドとかショートカットとかイロイロ


■移動系
| 行の先頭に移動(空白を無視)
_ 行の先頭に移動
  1. 下の行の先頭に移動
$ 行の末尾に移動
■カーソルがあってる文字列で次を検索
# *の逆
% 対応するカッコに移動
( 次の段落に移動(次の空行など)
) (の逆
e 単語単位で次に移動
b eの逆
g ファイルの始点に移動
G ファイルの終端に移動
:数字 数字の行に移動
Ctrl + u 画面半分上に移動
Ctrl + d 画面半分下に移動
■入力モードへの変更
i カーソルの左側から入力開始
I 行の先端から入力開始
a カーソルの右側から入力開始
A 行の終端から入力開始
o カーソルの下に改行してから入力開始
O カーソルの上に改行してから入力開始
■その他
undo ヒストリーバック
Ctrl + r redo uの逆
コピペ削除など
dd 今いる行を切り取り
d数字 今いる行+下の数字分の行を切り取り
yy 今いる行をコピー
y数字 今いる行+下の数字分の行をコピー
文字列検索とか
文字列検索
/検索文字列
n 次の該当箇所
N 前の該当箇所
:%s/痴漢前/痴漢後/g 全部痴漢
■ビジュアルモード的な感じ
v 項目選択
vを押下後に十字キーもしくは、hjklで移動すると文字列を選択しながら移動する
V 現在の行を全て選択
選択した状態で以下のコマンド
y 選択箇所をコピー
d 選択箇所を切り取り
p 選択箇所に上書きでペースト
r後に任意のキー 選択箇所全てをキーの文字列痴漢
u 選択箇所を全て小文字に
U 選択箇所を全て大文字に
■File explorer
:Sex ウインドウを分割してファイルエクスプローラを開く

参考*1



【awk】ログとかから任意のパラメータ値を取り出す


↓こーいう ログがあったりする test.log
127.0.0.1 - - [2011-07-08 10:38:39] "GET /hoge.php?uid=9999&shop_id=000000 HTTP/1.1" 200 2011 "-" "DoCoMo/2.0 SH905i(c100;TB;W24H15)" "uid=9999" "shop_id=000000"
↑これの uidとshop_idを取り出す
awkスクリプト作る get_log_param.awk

# アクセスログとかから、欲しいパラメータだけ取り出すスクリプト
#
# usage: awk -f get_log_param.awk [log file path...]
{
 # shop_id
 shop_id = match($0, /shop_id=[0-9]+/)
 if (shop_id != 0) { shop_id = substr($0, shop_id+8, RLENGTH-8) }
 # uid
 uid = match($0, /uid=[0-9]+/)
 if (uid != 0) { uid = substr($0, uid+4, RLENGTH-4) }
 if (shop_id != 0) {
  printf "shop_id=%d | ", shop_id
 }
 if (uid != 0) {
  printf "uid=%d", uid
 }
 print ""
}


実行
awk -f get_log_param.awk test.log
shop_id=204066 | uid=10009158
shop_id=197514 | uid=10018366
shop_id=205051 | uid=10010135
shop_id=218547 | uid=10003620
shop_id=220207 | uid=10001037
shop_id=203185 | uid=10103004
参考)
corbieのブログ:iptablesログの抽出
awk sed 入門
Awkプログラミング入門-第5回