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

Chinaunix

標(biāo)題: awk 分隔方括號(hào),空值當(dāng)列問(wèn)題 [打印本頁(yè)]

作者: skypeleo    時(shí)間: 2014-11-13 11:15
標(biāo)題: awk 分隔方括號(hào),空值當(dāng)列問(wèn)題
本帖最后由 skypeleo 于 2014-11-13 11:17 編輯

2014-11-11 09:39:48: ip[192.168.10.15] uid[585721] msg[get cache userinfo]
2014-11-05 09:58:33: ip[192.168.10.14] uid[585721] msg[get cache userinfo] uid[] word[555]
2014-11-06 09:58:33: ip[192.168.10.15] uid[585721] msg[get cache userinfo] key[we]
2014-11-12 09:58:34: ip[192.168.10.16] uid[585721] msg[get cache userinfo] uid[]
2014-11-05 09:58:34: ip[192.168.10.17] uid[] msg[get cache userinfo] search[you]

1.去除第2列后面的冒號(hào):
2.如果這個(gè)列有方括號(hào),取方括號(hào)內(nèi)的內(nèi)容
3.用“|”分隔
4.前5列一樣且一定有,后面可追加自定義的列
5.遇到某些列方括號(hào)里面為空 也要當(dāng)成列
6.文件大小2-4G


結(jié)果為
2014-11-11|09:39:48|192.168.10.15|585721|get cache userinfo
2014-11-05|09:58:33|192.168.10.14|585721|get cache userinfo||555
2014-11-06|09:58:33|192.168.10.15|585721|get cache userinfo|we
2014-11-12|09:58:34|192.168.10.16|585721|get cache userinfo||
2014-11-05|09:58:34|192.168.10.17||get cache userinfo|you

作者: ly5066113    時(shí)間: 2014-11-13 11:37
回復(fù) 1# skypeleo


try:
  1. awk -F '[][]' '{printf gensub(/(.*) (.*):[^:]*$/,"\\1|\\2",1,$1);for(i=2;i<NF;i+=2)printf "|"$i;print ""}' file
復(fù)制代碼

作者: skypeleo    時(shí)間: 2014-11-13 11:51
回復(fù) 2# ly5066113

秒殺  謝謝噠噠


   
作者: reyleon    時(shí)間: 2014-11-13 12:09
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-

  3. import fileinput, sys, re
  4. for line in fileinput.input(sys.argv[1]):
  5.     l = []
  6.     record = re.findall('(\d+-\d+-\d+ \d+:\d+:\d+)|\[(.*?)\]',line)
  7.     try:
  8.         l.append(record[0][0])
  9.         for t in record[1:]:
  10.             l.append(t[1])
  11.     except Exception, e:
  12.         pass
  13.     print '|'.join(l)
復(fù)制代碼
也可用于你之前的那個(gè)貼: http://www.72891.cn/thread-4160126-1-1.html
作者: chengchow    時(shí)間: 2014-11-13 14:26
本帖最后由 chengchow 于 2014-11-13 14:27 編輯
  1. sed -r 's/(^\S+)\s+(\S+):/\1|\2|/g;s/(\s+)\S+\[([^]]*)\]\S*/\1\2|/g' file
  2. 2014-11-11|09:39:48| 192.168.10.15| 585721| get cache userinfo|
  3. 2014-11-05|09:58:33| 192.168.10.14| 585721| get cache userinfo| | 555|
  4. 2014-11-06|09:58:33| 192.168.10.15| 585721| get cache userinfo| we|
  5. 2014-11-12|09:58:34| 192.168.10.16| 585721| get cache userinfo| |
  6. 2014-11-05|09:58:34| 192.168.10.17| | get cache userinfo| you|
復(fù)制代碼

作者: ntwarren    時(shí)間: 2014-11-13 17:14
gawk 'BEGIN{FS="[]:] +[a-z]+\\[|] *";OFS="|"}{sub(" ","|",$1);NF=NF-1}1'




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