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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1533 | 回復(fù): 7
打印 上一主題 下一主題

[文本處理] awk 分解文件 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2017-10-18 22:31 |只看該作者 |倒序瀏覽
本帖最后由 ljmmail 于 2017-10-18 22:35 編輯

如何使用 awk 分析以下數(shù)據(jù),按照指定標志分解文件

@@@@@<<<<<  為新文件開始標志,后面緊跟著文件名稱
#####>>>>> 為文件結(jié)束標志
最后分解為
./ftt
./pfhsm/include/kmSpier.h

  1. @@@@@<<<<< ./ftt BEGIN (17)LINES @@@@@<<<<<
  2. FBZ="@@@@@<<<<<"
  3. HBZ="#####>>>>>"
  4. FNUM=0
  5. FCNT=0

  6. for  t in ` find . -type f `
  7. do
  8. fwcl=`wc -l $t | awk '{print $1}'`
  9. echo "$FBZ $t BEGIN ($fwcl)LINES $FBZ"
  10. cat  $t
  11. echo "$HBZ $t END ($fwcl)LINES $HBZ"
  12. FNUM=`expr $FNUM + 1 `
  13. FCNT=`expr $FCNT + $fwcl `
  14. done

  15. echo "$HBZ 共 $FNUM 文件, $FCNT 行 $HNZ"
  16. echo "\n\n"
  17. #####>>>>> ./ftt END (17)LINES #####>>>>>
  18. @@@@@<<<<< ./pfhsm/include/kmSpier.h BEGIN (26)LINES @@@@@<<<<<
  19. //    Author:    Wolfgang Wang
  20. //    Date:    2003/09/02

  21. // 為UP-2003-04-13開發(fā)

  22. #ifndef _UnionKMSpierSpier_
  23. #define _UnionKMSpierSpier_

  24. #include "appKMSvr.h"
  25. #include "idOfApp.h"

  26. typedef struct
  27. {
  28.         char    requestOrResponse;    // 請求還是響應(yīng),1表示請求,0表示響應(yīng)
  29.         char    idOfApp[2];        // 應(yīng)用標識,應(yīng)用固定為80
  30.         char    idOfOperation[2];    // 操作標識,參見:appKMSvr.h的定義
  31.         char    errCode[6];        // 錯誤碼,操作產(chǎn)生
  32. } TUnionKMSpierHeader;
  33. typedef TUnionKMSpierHeader    *PUnionKMSpierHeader;

  34. int UnionSpyKMRequest(char *idOfOperation,char *reqStr,int len);
  35. int UnionSpyKMResponse(char *idOfOperation,char *errCode,char *resStr,int len);
  36. int UnionUnpackKMSpierPackage(char *pck,int lenOfPck,PUnionKMSpierHeader pheader,char *buf,int sizeOfBuf);
  37. int UnionAnalysisKMSpierPackage(char *pck,int lenOfPck,char *reqOrRes,char *oper,char *errCode,char *buf,int sizeOfBuf);

  38. #endif
  39. #####>>>>> ./pfhsm/include/kmSpier.h END (26)LINES #####>>>>>
復(fù)制代碼

論壇徽章:
0
2 [報告]
發(fā)表于 2017-10-18 22:33 |只看該作者
注意文件 名稱中帶有路徑信息,可能需要創(chuàng)建目錄

論壇徽章:
145
技術(shù)圖書徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11獅子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龍
日期:2014-01-08 15:26:12技術(shù)圖書徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
3 [報告]
發(fā)表于 2017-10-18 23:13 |只看該作者
回復(fù) 2# ljmmail

$ awk 'match($0,"^@@@@@<<<<< ([^ ]+)",m){f=m[1];s="";next}/^#####>>>>> /{print "file:"f;cmd="mkdir -p `dirname "f"`";system(cmd);printf("%s",s)>f;next}{s=s$0"\n"}' FILE
file:./ftt
file:./pfhsm/include/kmSpier.h

$ wc ./ftt
17  56 313 ./ftt

$ wc ./pfhsm/include/kmSpier.h
26  69 971 ./pfhsm/include/kmSpier.h

論壇徽章:
25
程序設(shè)計版塊每日發(fā)帖之星
日期:2016-05-03 06:20:0015-16賽季CBA聯(lián)賽之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16賽季CBA聯(lián)賽之佛山
日期:2018-08-03 13:19:3315-16賽季CBA聯(lián)賽之山西
日期:2018-08-07 19:46:2315-16賽季CBA聯(lián)賽之廣夏
日期:2018-08-08 19:31:5015-16賽季CBA聯(lián)賽之青島
日期:2018-11-26 15:21:5015-16賽季CBA聯(lián)賽之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16賽季CBA聯(lián)賽之深圳
日期:2020-04-19 21:40:19黑曼巴
日期:2022-04-03 17:55:1315-16賽季CBA聯(lián)賽之八一
日期:2018-07-03 16:56:46
4 [報告]
發(fā)表于 2017-10-19 12:21 |只看該作者
回復(fù) 1# ljmmail


  1. awk '/^@@@@@<<<<<.*@@@@@<<<<<$/{a="";split($0,s);dir=gensub("[^/]+$","","1",s[2]);system("mkdir -p "dir"")}{a=a?a"\n"$0:$0}/^#####>>>>>.*#####>>>>>$/{print a>s[2];a=""}' file
復(fù)制代碼

論壇徽章:
0
5 [報告]
發(fā)表于 2017-10-20 12:08 |只看該作者
謝謝 jason680 回復(fù),這個方法確實可用。

論壇徽章:
0
6 [報告]
發(fā)表于 2017-10-20 15:57 |只看該作者
  1. awk '
  2.         BEGIN { mpath=""; npath="";}
  3.         ## 對文件開始標志行處理,獲取文件名稱,判斷文件夾沒出現(xiàn)過,則建立子目錄
  4.         { if ($0 ~ /^@@@@@<<<<</) {
  5.                 split($0,s); f=substr(s[2], 3);
  6.                 npath=gensub("[^/]+$","","1",s[2])
  7.                 if(npath != mpath) { cmd="mkdir -p "npath" "; system(cmd); mpath=npath; }
  8.                 icnt=0; buf=""; next}
  9.         }
  10.         ## 對文件結(jié)束標志處理,輸出緩沖區(qū)數(shù)據(jù),打印提示信息
  11.         { if ($0 ~ /^#####<<<<</) { print "create :-> " f; printf("%s",buf)>f;next}}
  12.        
  13.         ## 正常數(shù)據(jù)行,追加新數(shù)據(jù)到緩沖區(qū)中,并計算行數(shù)
  14.         { buf=buf$0"\n"; icnt = icnt + 1; }
  15.         ## 緩沖區(qū)中有 64 上時,完成一次數(shù)據(jù)輸出
  16.         { if(icnt==64) { printf("%s",buf)>f; buf=""; icnt = 0; }}

  17. '  filename
復(fù)制代碼


這是一個整理后的處理腳本,增加了一些特效,程序效率很高

論壇徽章:
0
7 [報告]
發(fā)表于 2017-10-20 15:58 |只看該作者
  1. awk '
  2.         BEGIN { mpath=""; npath="";}
  3.         ## 對文件開始標志行處理,獲取文件名稱,判斷文件夾沒出現(xiàn)過,則建立子目錄
  4.         { if ($0 ~ /^@@@@@<<<<</) {
  5.                 split($0,s); f=substr(s[2], 3);
  6.                 npath=gensub("[^/]+$","","1",s[2])
  7.                 if(npath != mpath) { cmd="mkdir -p "npath" "; system(cmd); mpath=npath; }
  8.                 icnt=0; buf=""; next}
  9.         }
  10.         ## 對文件結(jié)束標志處理,輸出緩沖區(qū)數(shù)據(jù),打印提示信息
  11.         { if ($0 ~ /^#####<<<<</) { print "create :-> " f; printf("%s",buf)>f;next}}
  12.        
  13.         ## 正常數(shù)據(jù)行,追加新數(shù)據(jù)到緩沖區(qū)中,并計算行數(shù)
  14.         { buf=buf$0"\n"; icnt = icnt + 1; }
  15.         ## 緩沖區(qū)中有 64 上時,完成一次數(shù)據(jù)輸出
  16.         { if(icnt==64) { printf("%s",buf)>f; buf=""; icnt = 0; }}

  17. '
復(fù)制代碼
這是整理后的腳本,增加了一些特效,處理效率很高。

論壇徽章:
8
CU十四周年紀念徽章
日期:2017-08-28 17:16:1915-16賽季CBA聯(lián)賽之北控
日期:2018-03-29 11:39:0615-16賽季CBA聯(lián)賽之上海
日期:2018-05-21 10:46:10技術(shù)圖書徽章
日期:2018-09-03 13:54:18技術(shù)圖書徽章
日期:2018-09-03 13:54:2815-16賽季CBA聯(lián)賽之四川
日期:2020-10-15 09:21:4720周年集字徽章-20	
日期:2020-10-28 13:53:0220周年集字徽章-慶
日期:2020-10-28 14:09:12
8 [報告]
發(fā)表于 2017-10-24 13:57 |只看該作者
  1. awk '/@@@@@<<<<<.*@@@@@<<<<</{match($0,"@@@@@<<<<< (.*) BEGIN.*@@@@@<<<<<",a) ; p=1 ; next }/#####>>>>>.*#####>>>>>/{p=0}{if(p==1) print $0 > a[1]}' urfile
復(fù)制代碼
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP