- 統計行數
單一檔案
awk 'END{print FNR}' xxx.log
多個檔案
awk 'END{print FNR}' *.log
用linux本身的wc指令也可達到效果
wc -l *.log - 取出重覆及不重覆次數
[root@test]# cat a.txt
12 1209185885333940
12 1209185089989307
12 1209185891525318
13 1209186004855839
13 1209185995006463
13 1209185995006463
awk '{a[$1]++}flag[$1,$2]!=1{b[$1]++}{flag[$1,$2]=1}END{for (i in a)print i,a[i],b[i]}' a.txt
--
12 3 3
13 3 2
reference: 请教awk如何同时统计 总数与不重复个数?
- 列出符合的資料
- 單筆
sed '0,/PARSE_FROM_HERE/' a.txt
awk '/regex/ {getline;print}' a.txt - 之後(含符合項)
awk '/regex/,0' a.txt
awk '/regex/,G' a.txt - 之後(不含符合項)
sed '0,/regex/d' a.txt
awk '/regex/ {getline;print}' a.txt - 之前
試半天用不出來,乾脆先倒過來讀,就可用上面的方法做出來了
sed '1!G;h;$!d' test | awk '/regex/,0'
- 單筆
星期四, 6月 28, 2012
常用sed與awk
星期二, 6月 26, 2012
vim及tmux視窗常用指令
兩個切換視窗切到指令都亂了
- 合併兩個即有視窗
- vim: vert sb#
- tmux
- 將目前的pane抽成獨立視窗
- vim:
- tmux: CTRL-b !
- 分割頁切換
- vim: CTRL-W 方向鍵
或是CTRL-W j(往右) or w(往下),大寫則相反 - tmux: CTRL-o
- vim: CTRL-W 方向鍵
星期二, 6月 19, 2012
php與awk
- 在php中執行shell
可利用shell_exec
shell_exec('ls -l');
- 使用awk
$data = shell_exec("awk '{print $1}' " . $filepath ); - 取得單行awk內容
由於shell_exec是一次將每行內容回傳,如果要一行行取得awk的資料就要搭配exec
$feeds = array(); exec("awk '{print $1}' " . $filepath, $feeds ); foreach($feeds as $feed) echo $feed . '< br/>';
星期二, 6月 12, 2012
將url字串的參數轉為array
- 取出query部份
$url = 'http://username:password@hostname/path?arg=value#anchor'; $urlinfo = parse_url($url); ------------------------ Array ( [scheme] => http [host] => hostname [user] => username [pass] => password [path] => /path [query] => arg=value [fragment] => anchor )
- 轉成array
$str = "first=value&arr[]=foo+bar&arr[]=baz"; parse_str($str); echo $first; // value echo $arr[0]; // foo bar echo $arr[1]; // baz parse_str($str, $output); echo $output['first']; // value echo $output['arr'][0]; // foo bar echo $output['arr'][1]; // baz
References
星期一, 6月 11, 2012
php連oracle stored procedure
- sql
- 建立連線
$conn = oci_connect('YOUR_ACCOUNT', 'YOUR_PASSWORD','//IP_ADDRESS:PORT/SERVICE_NAME'); - 下sql
$sql = "SELECT ID, NAME as \"name\"
FROM CATEGORY
WHERE PARENT_ID = 0 AND STATUS = 1
ORDER BY CATEGORY_ID ASC"; - 取資料
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$nrows = oci_fetch_all($stid, $res,0, -1, OCI_FETCHSTATEMENT_BY_ROW);
//echo "$nrows rows fetched
print_r( $res);*/
- 建立連線
- stored procedure
- 建立連線
$conn = oci_connect('YOUR_ACCOUNT', 'YOUR_PASSWORD','//IP_ADDRESS:PORT/SERVICE_NAME'); - 連stored procedure
假設sp名為myStoredProcedured,目的是將取到的時間轉為unit timestamp
$sql ="begin
:result := myStoredProcedured(:result => to_date(:myDate,'yyyy-mm-dd'));
end; ";
$stmt = oci_parse($conn,$sql) or die('could not parse statement.');
//bind參數
oci_bind_by_name($stmt,':result',$result,10); //回傳值需靠參數回傳
oci_bind_by_name($stmt,':myDate',$myDate,10);
//給值
$myDate = '2012-06-12';
//取值
oci_execute($stmt) or die('execute');
print_r($result);
- 給參數
- 建立連線
星期日, 6月 03, 2012
linux個人環境設定
每次重灌或換個新環境就得憑記憶重設定
乾脆直接記下來省時間...
乾脆直接記下來省時間...
感謝Dockerfile等工具... 以後這些都可以不用理了...
- bashrc
vim ~/.bashrc
export TERM=screen-256color #註1
註1: lose vim colorscheme in tmux mode
- vim 環境設定
- 環境
- 縮排
- tmux
# General configuration. # $ tmux show-options -g set -g base-index 1 set -g display-time 5000 set -g repeat-time 1000 set -g status-keys vi set -g status-utf8 on set -g status-bg black set -g status-fg white set -g status-justify left set -g status-interval 1 set -g status-left-length 15 set -g status-right-length 55 set -g status-left "#[fg=white,bright] #[fg=yellow,bright]#S #[default] |" # session-name set -g status-right "#[fg=red,bright][ #[fg=cyan]#(git branch --no-color | sed -e '/^[^*]/d' -e 's/* //') #[fg=red]]#[default] #[fg=yellow,bright] %Y-%m-%d #[fg=green]%H:%M:%S #[default]#[fg=magenta,bright]#[default]" # window setting setw -g utf8 on setw -g window-status-format " [#I] #W " setw -g window-status-current-format " [#I] #W " setw -g window-status-current-fg black setw -g window-status-current-bg green setw -g window-status-current-attr default # using function keyCtrl+A unbind C-b set -g prefix ^A bind a send-prefix # split window unbind % unbind '"' bind v split-window -h bind | split-window -h bind h split-window -v bind - split-window -v
設好後,重啟config
tmux source-file ~/.tmux.conf
- git
訂閱:
文章 (Atom)