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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪(fǎng)問(wèn)板塊 發(fā)新帖
查看: 1509 | 回復(fù): 9
打印 上一主題 下一主題

[文本處理] awk或sed如何讀取帶有字符的行文件 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-09-02 16:14 |只看該作者 |倒序?yàn)g覽
各位shell高手,向大家請(qǐng)教個(gè)問(wèn)題,望解答,謝謝。。
   具體如下:一個(gè)文本文件,里面有很多數(shù)據(jù),每段的數(shù)據(jù)以字符“X"分隔,想從該文件中提取每段數(shù)據(jù),并將每段數(shù)據(jù)按100行間隔提取,存在一個(gè)文件里,不用字符"X“分隔。


一個(gè)文本文件格式為:
                    X
                    112323.2222   34.222223       1001
                     1124344444   222222222      3000
                     222222222     33333333        6666
                    .......                ..........
                    .......               ...........
                   X
                    222222222      2222222      999
                    33333333        4444444     2000
                     555555          555555       4000
                   ...........           .........
                   .........            ..........
                   X
                    4444444         5555555      2000
                     232323          45454545    3000
                    6767676          3232323     6000
                    ........             ..........        ......

論壇徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亞洲杯之阿曼
日期:2015-04-14 10:41:50NBA常規(guī)賽紀(jì)念章
日期:2015-05-04 22:32:03NBA季后賽大富翁
日期:2015-05-04 22:34:11菠菜明燈
日期:2015-05-04 22:35:49新奧爾良黃蜂
日期:2015-05-04 22:49:2315-16賽季CBA聯(lián)賽之廣夏
日期:2015-12-11 15:02:342015年亞洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亞洲杯之阿聯(lián)酋
日期:2015-03-04 11:19:04休斯頓火箭
日期:2015-03-02 16:32:11紐約尼克斯
日期:2015-03-02 16:09:04
2 [報(bào)告]
發(fā)表于 2014-09-02 16:21 |只看該作者
沒(méi)太看明白你說(shuō)的,你最好有個(gè)列子,想達(dá)到什么樣的效果

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2014-09-02 16:48 |只看該作者
程序的思路是這樣,按每行讀取數(shù)據(jù),當(dāng)遇到字符”X"時(shí),讀取下一行數(shù)據(jù)回車(chē),然后再間隔100行讀取一行數(shù)據(jù)回車(chē)。。。。。,當(dāng)再次遇到字符“X"時(shí),與之前一樣,讀取下一行數(shù)據(jù)回車(chē),然后再間隔100行讀取一行數(shù)據(jù)回車(chē)。
      

論壇徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亞冠之浦和紅鉆
日期:2015-06-29 15:30:48
4 [報(bào)告]
發(fā)表于 2014-09-02 16:51 |只看該作者
  1. [root@FILE_SHARE tmp]# cat b
  2. X
  3. 1 112323.2222   34.222223       1001
  4. 2 1124344444   222222222      3000
  5. 3 222222222     33333333        6666
  6. 4 112323.2222   34.222223       1001
  7. 5 1124344444   222222222      3000
  8. 6 222222222     33333333        6666
  9. 7 112323.2222   34.222223       1001
  10. 8 1124344444   222222222      3000
  11. 9 222222222     33333333        6666
  12. 10 112323.2222   34.222223       1001
  13. X
  14. 1 1124344444   222222222      3000
  15. 2 222222222     33333333        6666
  16. 3 112323.2222   34.222223       1001
  17. 4 1124344444   222222222      3000
  18. 5 222222222     33333333        6666
  19. 6 12323.2222   34.222223       1001
  20. 7 1124344444   222222222      3000
  21. 8 222222222     33333333        6666
  22. 9 112323.2222   34.222223       1001
  23. 10 1124344444   222222222      3000
  24. X
  25. 1 222222222     33333333        6666
  26. 2 112323.2222   34.222223       1001
  27. 3 1124344444   222222222      3000
  28. 4 222222222     33333333        6666
  29. 5 112323.2222   34.222223       1001
  30. 6 1124344444   222222222      3000
  31. 7 222222222     33333333        6666
  32. 8 112323.2222   34.222223       1001
  33. 9 1124344444   222222222      3000
  34. 10 222222222     33333333        6666
  35. [root@FILE_SHARE tmp]# awk 'BEGIN{RS="X";FS="\n"}NR>1{$1=$1;for(i=2;i<=NF;i=i+3)print $i}' b
  36. 1 112323.2222   34.222223       1001
  37. 4 112323.2222   34.222223       1001
  38. 7 112323.2222   34.222223       1001
  39. 10 112323.2222   34.222223       1001
  40. 1 1124344444   222222222      3000
  41. 4 1124344444   222222222      3000
  42. 7 1124344444   222222222      3000
  43. 10 1124344444   222222222      3000
  44. 1 222222222     33333333        6666
  45. 4 222222222     33333333        6666
  46. 7 222222222     33333333        6666
  47. 10 222222222     33333333        6666
復(fù)制代碼
如果符合lz的想法把i=i+3改成i=i+100就ok了

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2014-09-02 17:01 |只看該作者
非常感謝!太牛了 回復(fù) 4# dn833


   

論壇徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亞洲杯之阿曼
日期:2015-04-14 10:41:50NBA常規(guī)賽紀(jì)念章
日期:2015-05-04 22:32:03NBA季后賽大富翁
日期:2015-05-04 22:34:11菠菜明燈
日期:2015-05-04 22:35:49新奧爾良黃蜂
日期:2015-05-04 22:49:2315-16賽季CBA聯(lián)賽之廣夏
日期:2015-12-11 15:02:342015年亞洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亞洲杯之阿聯(lián)酋
日期:2015-03-04 11:19:04休斯頓火箭
日期:2015-03-02 16:32:11紐約尼克斯
日期:2015-03-02 16:09:04
6 [報(bào)告]
發(fā)表于 2014-09-02 17:04 |只看該作者
awk 'BEGIN{i=0;}{if($0 == "X") {line = NR + 1 ; next} if(NR == line ) {a[i] = $0; line+=100;i+=1;next}} END{for (i in a) print a[i]}' test

你試試這個(gè) 挺笨的方法

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2014-09-02 17:09 |只看該作者
如果保留每段數(shù)據(jù)的首行和尾行,中間間隔100行,好不好弄,謝謝!
一個(gè)文本文件格式為:
                    X
                    112323.2222   34.222223       1001      (提取該段數(shù)據(jù)首行)
                     1124344444   222222222      3000
                     222222222     33333333        6666      (中間間隔100行)
                    .......                ..........
                    .......               ...........
                   5555555     888888888             8888     (提取該數(shù)據(jù)最后一行)
                   X
                    222222222      2222222      999           (提取該段數(shù)據(jù)首行)
                    33333333        4444444     2000          (中間間隔100行)
                     555555          555555       4000
                   ...........           .........
                   .........            ..........
                   888888           3433333      7777          (提取該數(shù)據(jù)最后一行)

論壇徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亞洲杯之阿曼
日期:2015-04-14 10:41:50NBA常規(guī)賽紀(jì)念章
日期:2015-05-04 22:32:03NBA季后賽大富翁
日期:2015-05-04 22:34:11菠菜明燈
日期:2015-05-04 22:35:49新奧爾良黃蜂
日期:2015-05-04 22:49:2315-16賽季CBA聯(lián)賽之廣夏
日期:2015-12-11 15:02:342015年亞洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亞洲杯之阿聯(lián)酋
日期:2015-03-04 11:19:04休斯頓火箭
日期:2015-03-02 16:32:11紐約尼克斯
日期:2015-03-02 16:09:04
8 [報(bào)告]
發(fā)表于 2014-09-02 17:11 |只看該作者
回復(fù) 7# explorerlj

你看看6樓我說(shuō)的 是不是滿(mǎn)足你的需求

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2014-09-02 17:19 |只看該作者
結(jié)果與dn833不一樣,好像循環(huán)有問(wèn)題,不過(guò)還是要感謝你,謝謝!剛開(kāi)始學(xué),很多不太懂。回復(fù) 6# super皮波


   

論壇徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亞洲杯之阿曼
日期:2015-04-14 10:41:50NBA常規(guī)賽紀(jì)念章
日期:2015-05-04 22:32:03NBA季后賽大富翁
日期:2015-05-04 22:34:11菠菜明燈
日期:2015-05-04 22:35:49新奧爾良黃蜂
日期:2015-05-04 22:49:2315-16賽季CBA聯(lián)賽之廣夏
日期:2015-12-11 15:02:342015年亞洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亞洲杯之阿聯(lián)酋
日期:2015-03-04 11:19:04休斯頓火箭
日期:2015-03-02 16:32:11紐約尼克斯
日期:2015-03-02 16:09:04
10 [報(bào)告]
發(fā)表于 2014-09-02 17:21 |只看該作者
回復(fù) 9# explorerlj

我這有一點(diǎn)限制,要求X前不能有空格,我自己測(cè)試是沒(méi)問(wèn)題的
   
您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP