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

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

Chinaunix

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

[文本處理] 截取所有相同的名至結(jié)束行 [復(fù)制鏈接]

論壇徽章:
2
15-16賽季CBA聯(lián)賽之四川
日期:2020-08-18 20:19:4815-16賽季CBA聯(lián)賽之青島
日期:2022-01-19 11:51:49
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2023-08-27 20:53 |只看該作者 |倒序?yàn)g覽
本帖最后由 unix520 于 2023-08-27 21:00 編輯

a.txt
截取所有相同的名至結(jié)束行
如果從倒數(shù)行中發(fā)現(xiàn)第一個有 "新增" 字符串的行,  需截取所有相同的 "MAC"  至 "結(jié)束"  行   , 即截取相同 "MAC"  至 "結(jié)束"  行
最后一個有 "新增" 字符串的行其中MAC 有隨時可能變化,  并不是固定名詞, 也不是在行中固定列數(shù),   所以請使用MAC格式匹配
  1. MAC格式  /([0-9A-Z]{2}:){5}[0-9A-Z]{2}/
復(fù)制代碼

為了提高效率, 請從倒數(shù)開始搜索有 "新增" 字符串的行尋找開始工作, ·這樣可以大大減少從開始搜索到結(jié)尾過程時間

希望用awk實(shí)現(xiàn)

  1. a.txt
  2. a 新增  01:02:03:04:05:06 (
  3. ***
  4. b 結(jié)束

  5. e 新增  U 1A:2A:3A:4A:5A:6A (
  6. **
  7. f 結(jié)束

  8. g 新增  01:02:03:04:05:06 (
  9. **
  10. f 結(jié)束

  11. c 新增  1A:2A:3A:4A:5A:6A (
  12. ***
  13. d 結(jié)束

  14. v A1:A2:A3:A4:A5:A6
復(fù)制代碼
  1. b.txt
  2. e 新增  U 1A:2A:3A:4A:5A:6A (
  3. **
  4. f 結(jié)束

  5. c 新增  1A:2A:3A:4A:5A:6A (
  6. ***
  7. d 結(jié)束
復(fù)制代碼





論壇徽章:
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
2 [報告]
發(fā)表于 2023-08-29 12:27 |只看該作者
回復(fù) 1# unix520

unix520你好:
下面你發(fā)表的主題中均有大家給你的回復(fù),而你卻把1樓提問帖的內(nèi)容修改成了如“謝謝”、“算了 不問了”、“新年快樂”等內(nèi)容。大家回復(fù)幫你解決問題是要耗費(fèi)時間和精力的,你這樣做是對回復(fù)人的不尊重,也讓該主題失去了參考價值。請恢復(fù)這些主題中1樓提問帖的內(nèi)容。

http://72891.cn/forum.php?mod=viewthread&tid=4319222
http://72891.cn/forum.php?mod=viewthread&tid=4319242
http://72891.cn/forum.php?mod=viewthread&tid=4319228
http://72891.cn/forum.php?mod=viewthread&tid=4319296






論壇徽章:
2
15-16賽季CBA聯(lián)賽之四川
日期:2020-08-18 20:19:4815-16賽季CBA聯(lián)賽之青島
日期:2022-01-19 11:51:49
3 [報告]
發(fā)表于 2023-08-29 13:24 |只看該作者
回復(fù) 2# wh7211

沒有不尊重意思,   請不要誤會哦, 只不過部分涉及到某些不宜公開公司資料,如有一些不當(dāng)之處影響了大家,  實(shí)在抱歉, 希望大家諒解。已全部更正及還原主題意思

論壇徽章:
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ā)表于 2023-08-29 15:54 |只看該作者
回復(fù) 1# unix520


  1. cat 1
  2. a 新增  01:02:03:04:05:06 (
  3. ***
  4. b 結(jié)束

  5. e 新增  U 1A:2A:3A:4A:5A:6A (
  6. **
  7. f 結(jié)束

  8. g 新增  01:02:03:04:05:06 (
  9. **
  10. f 結(jié)束

  11. c 新增  1A:2A:3A:4A:5A:6A (
  12. ***
  13. d 結(jié)束

  14. v A1:A2:A3:A4:A5:A6

  15. awk '/新增/{a=1;match($0,"(([0-9A-Z]{2}:){5}[0-9A-Z]{2})",b);d[++c]=b[1]}a{e[c]=e[c]?e[c]"\n"$0:$0}/結(jié)束/{a=0}END{for(i=1;i<=c;i++){if(d[i]==d[c]){print e[i]"\n">"2"}}}' 1

  16. cat 2
  17. e 新增  U 1A:2A:3A:4A:5A:6A (
  18. **
  19. f 結(jié)束

  20. c 新增  1A:2A:3A:4A:5A:6A (
  21. ***
  22. d 結(jié)束

復(fù)制代碼

論壇徽章:
2
15-16賽季CBA聯(lián)賽之四川
日期:2020-08-18 20:19:4815-16賽季CBA聯(lián)賽之青島
日期:2022-01-19 11:51:49
5 [報告]
發(fā)表于 2023-08-29 20:35 |只看該作者
本帖最后由 unix520 于 2023-08-29 21:21 編輯

回復(fù) 4# wh7211

結(jié)果是正確,  但是似乎有點(diǎn)慢,  將主題例重復(fù)復(fù)制粘貼到100m文件試    在同一臺配置上用了53秒,   由于每次都會寫入新的  所以需要提高效率才行 ,  還能再快一些嗎?   另外想用win gawk環(huán)境執(zhí)行
  1. $ time awk '/新增/{a=1;match($0,"(([0-9A-Z]{2}:){5}[0-9A-Z]{2})",b);d[++c]=b[1]}a{e[c]=e[c]?e[c]"\n"$0:$0}/結(jié)束/{a=0}END{for(i=1;i<=c;i++){if(d[i]==d[c]){print e[i]"\n">"2.txt"}}}' 1.txt

  2. real    0m53.557s
復(fù)制代碼


在同一臺配置上用已棄用代碼 用時僅14s,  由于是列匹配模式, 有很多列不整齊問題,  想棄用   但如果可以修改為匹配MAC,   效率應(yīng)該也很理想的
  1. $ time awk 'NR==FNR{if($2~/新增/){a=$3}}NR>FNR{if($3~a){d=$0;getline;if($2~/新增/){b=0;next}else{print d;b=1}};if(b==1){print $0;if($2~/結(jié)束/){print "";b=0}}}' 1.txt 1.txt >2.txt

  2. real    0m14.997s

復(fù)制代碼


論壇徽章:
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
6 [報告]
發(fā)表于 2023-08-29 23:03 |只看該作者
回復(fù) 5# unix520


文件1大小100M,測試結(jié)果如下,代碼2效率更高。

代碼1:
  1. time awk '/新增/{a=1;match($0,"(([0-9A-Z]{2}:){5}[0-9A-Z]{2})",b);d[++c]=b[1]}a{e[c]=e[c]?e[c]"\n"$0:$0}/結(jié)束/{a=0}END{for(i=1;i<=c;i++){if(d[i]==d[c]){print e[i]"\n">"2"}}}' 1

  2. real        0m17.208s
復(fù)制代碼


代碼2:
  1. time awk '/新增/{a=1;for(i=1;i<=NF;i++){if($i~/([0-9A-Z]{2}:){5}[0-9A-Z]{2}/){c[++b]=$i;break}}}a{d[b]=d[b]?d[b]"\n"$0:$0}/結(jié)束/{a=0}END{for(i=1;i<=b;i++){if(c[i]==c[b]){print d[i]"\n">"2"}}}' 1

  2. real        0m7.504s
復(fù)制代碼

論壇徽章:
2
15-16賽季CBA聯(lián)賽之四川
日期:2020-08-18 20:19:4815-16賽季CBA聯(lián)賽之青島
日期:2022-01-19 11:51:49
7 [報告]
發(fā)表于 2023-08-30 09:14 |只看該作者
回復(fù) 6# wh7211

謝謝,,   可能是辦公設(shè)備配置差原因

論壇徽章:
2
15-16賽季CBA聯(lián)賽之四川
日期:2020-08-18 20:19:4815-16賽季CBA聯(lián)賽之青島
日期:2022-01-19 11:51:49
8 [報告]
發(fā)表于 2023-08-30 21:52 |只看該作者
本帖最后由 unix520 于 2023-08-30 22:02 編輯
  1. awk 'NR==FNR{if($2~/新增/){a=$3}}NR>FNR{if($3~a){d=$0;getline;if($2~/新增/){b=0;next}else{print d;b=1}};if(b==1){print $0;if($2~/結(jié)束/){print "";b=0}}}' 1.txt 1.txt >2.txt
復(fù)制代碼
如果按以上代碼思路, 將其修改為匹配MAC格式方法,  請問該如何改呢?



僅修改這2處似乎不行
{if($2~/新增/){a=$3}}
{if($3~a)


將a=$3改為:  {if($2~/新增/){a=/([0-9A-Z]{2}{5}[0-9A-Z]{2}/}}

{if($3~a)改為: {if(([0-9A-Z]{2}{5}[0-9A-Z]{2}~a)

  1. awk 'NR==FNR{if($2~/新增/){a=/([0-9A-Z]{2}:){5}[0-9A-Z]{2}/}}NR>FNR{if(/([0-9A-Z]{2}:){5}[0-9A-Z]{2}/~a){d=$0;getline;if($2~/新增/){b=0;next}else{print d;b=1}};if(b==1){print $0;if($2~/結(jié)束/){print "";b=0}}}' 1.txt 1.txt >2.txt
復(fù)制代碼





論壇徽章:
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
9 [報告]
發(fā)表于 2023-08-31 10:46 |只看該作者
本帖最后由 wh7211 于 2023-08-31 11:27 編輯

回復(fù) 8# unix520


文件1大小100M,不匹配MAC,測試結(jié)果如下。代碼3是在代碼2的基礎(chǔ)上,去掉了匹配MAC的部分。代碼3比你提供的代碼效率更高。

代碼3:
  1. time awk '/新增/{a=1;c[++b]=$3}a{d[b]=d[b]?d[b]"\n"$0:$0}/結(jié)束/{a=0}END{for(i=1;i<=b;i++){if(c[i]==c[b]){print d[i]"\n">"2"}}}' 1

  2. real        0m4.508s
復(fù)制代碼


你提供的代碼:
  1. time awk 'NR==FNR{if($2~/新增/){a=$3}}NR>FNR{if($3~a){d=$0;getline;if($2~/新增/){b=0;next}else{print d;b=1}};if(b==1){print $0;if($2~/ 結(jié)束/){print "";b=0}}}' 1 1 > 2

  2. real        0m5.537s
復(fù)制代碼

  1. awk 'NR==FNR{if($2~/新增/){a=$3}}NR>FNR{if($3~a){d=$0;getline;if($2~/新增/){b=0;next}else{print d;b=1}};if(b==1){print $0;if($2~/結(jié)束/){print "";b=0}}}' 1.txt 1.txt >2.txt
復(fù)制代碼
如果按以上代碼思路, 將其修改為匹配MAC格式方法,  請問該如何改呢?

文件1大小100M,按你的需求修改為匹配MAC,測試結(jié)果如下。
  1. time awk 'NR==FNR{if($2~/新增/){for(i=1;i<=NF;i++){if($i~/([0-9A-Z]{2}:){5}[0-9A-Z]{2}/){a=$i;break}}}}NR>FNR{for(i=1;i<=NF;i++){if($i~a){d=$0;getline;if($2~/新增/){b=0;next}else{print d;b=1};break}};if(b==1){print $0;if($2~/結(jié)束/){print "";b=0}}}' 1 1 > 2

  2. real        0m9.927s
復(fù)制代碼

論壇徽章:
2
15-16賽季CBA聯(lián)賽之四川
日期:2020-08-18 20:19:4815-16賽季CBA聯(lián)賽之青島
日期:2022-01-19 11:51:49
10 [報告]
發(fā)表于 2023-08-31 14:14 |只看該作者
回復(fù) 9# wh7211

謝謝
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(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