亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 日志合并問題請教 [打印本頁]

作者: tianer    時間: 2012-07-11 14:24
標(biāo)題: 日志合并問題請教
現(xiàn)在手頭有很多的apache日志
文件名像這樣的

br-mx-fc.ibb.com_access_log.1
br-mx-fc.ibb.com_access_log.2
br-mx-fc.ibb.com_access_log.3

br-mx-fc.ibb.com_ssl_access_log.1
br-mx-fc.ibb.com_ssl_access_log.2
br-mx-fc.ibb.com_ssl_access_log.3

login-br-mx-fc.ibb.com_access_log.1
login-br-mx-fc.ibb.com_access_log.2
login-br-mx-fc.ibb.com_access_log.3

pass.ibb.com_access_log.1
pass.ibb.com_access_log.2
pass.ibb.com_access_log.3

現(xiàn)在要將同一個域名的日志合并
合并成

br-mx-fc.ibb.com_access_log
br-mx-fc.ibb.com_ssl_access_log
login-br-mx-fc.ibb.com_access_log
pass.ibb.com_access_log

合并要用到的命令是
sort -m -t " " -k 4 -o    br-mx-fc.ibb.com_access_log  br-mx-fc.ibb.com_access_log.1 br-mx-fc.ibb.com_access_log.2 br-mx-fc.ibb.com_access_log.3

請問要如何合并。
想了很久寫不出來

日志不知這些,不過文件名都是這種格式的

作者: yinyuemi    時間: 2012-07-11 14:41
回復(fù) 1# tianer
  1. 沒測試
  2.     awk 'BEGIN{cmd="sort -m -t\" \" -k4 -o ";while("ls *"|getline line){if(!a[b=gensub(/(.*)\.[0-9]/,"\\1",1,line)]++)system (cmd b " "b"*")}}'
復(fù)制代碼

作者: dn833    時間: 2012-07-11 15:39
  1. ls -1|awk -F . '!a[$1]++{system ("sort -m -t \" \" -k 4 -o "$1" "$1".*")}'
復(fù)制代碼

作者: personball    時間: 2012-07-11 15:48
本帖最后由 personball 于 2012-07-11 16:24 編輯

cat file1 file2 >file3  
是這意思?
好吧,要排序輸出,是蠻復(fù)雜的

折騰了一把
每行輸出sort要用的參數(shù)
  1. personball@vostro:logdeal$ls|xargs -n 1|awk -F_ '{t=$0;$NF="";$(NF-1)=$(NF-1)"_log";a[$0]=a[$0]" "t;}END{FRS=".";for(i in a){print i a[i]}}'
  2. b.c.d_log  b.c.d_log.1 b.c.d_log.2 b.c.d_log.3
  3. a.b.c_log  a.b.c_log.1 a.b.c_log.2 a.b.c_log.3 a.b.c_log.4
  4. personball@vostro:logdeal$ls
  5. a.b.c_log.1  a.b.c_log.3  b.c.d_log.1  b.c.d_log.3
  6. a.b.c_log.2  a.b.c_log.4  b.c.d_log.2
  7. personball@vostro:logdeal$
復(fù)制代碼
帶上使用這些參數(shù)的方式  count.sh(確認(rèn)參數(shù)正確)代替sort
  1. personball@vostro:logdeal$ls|xargs -n 1|awk -F_ '{t=$0;$NF="";$(NF-1)=$(NF-1)"_log";a[$0]=a[$0]" "t;}END{FRS=".";for(i in a){printf i a[i] "|"}}'|xargs -d '|' -n 1 ../count.sh
  2. b.c.d_log b.c.d_log.1 b.c.d_log.2 b.c.d_log.3
  3. a.b.c_log a.b.c_log.1 a.b.c_log.2 a.b.c_log.3 a.b.c_log.4
  4. personball@vostro:logdeal$cat ../count.sh
  5. #!/bin/bash
  6. echo $@
  7. exit 0
  8. personball@vostro:logdeal$
復(fù)制代碼

作者: tianer    時間: 2012-07-11 15:55
回復(fù) 2# yinyuemi


    謝謝,可以的
作者: tianer    時間: 2012-07-11 15:57
回復(fù) 3# dn833


    謝謝你的回答。
執(zhí)行這條命令之后生成的新文件名是

br-mx-fc
login-br-mx
pass.ibb

作者: dn833    時間: 2012-07-11 16:22
本帖最后由 dn833 于 2012-07-11 16:26 編輯

回復(fù) 6# tianer
  1. ls -1|awk -F ".[0-9]+$" '!a[$1]++{system ("sort -m -t \" \" -k 4 -o "$1" "$1"*")}'
復(fù)制代碼
非常抱歉。。。。。剛才大意了
作者: personball    時間: 2012-07-11 16:26
本帖最后由 personball 于 2012-07-11 16:27 編輯
dn833 發(fā)表于 2012-07-11 15:39

ls -1|awk -F . '!a[$1]++{system ("sort -m -t \" \" -k 4 -o "$1" "$1".*")}'


這個犀利。。
作者: dn833    時間: 2012-07-11 16:29
回復(fù) 8# personball


    那個。。。丟人了。。?7樓的吧~剛才沒用心看LZ的題目
作者: personball    時間: 2012-07-11 16:48
回復(fù) 9# dn833


    我倒沒注意命令的執(zhí)行結(jié)果是否正確,只是覺得 用星號直接wildcard  這個思路避免了一些復(fù)雜的東西
作者: dn833    時間: 2012-07-11 16:57
回復(fù) 10# personball


    *用不好會出亂子的。。。。。。其實(shí)我也沒有驗(yàn)證過是不是可行。。。。。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2