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

  免費注冊 查看新帖 |

Chinaunix

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

awk 實現(xiàn) grep -A3 -B3 的效果,文本10G行 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-03-23 10:12 |只看該作者 |倒序瀏覽
比如 grep -A3 -B3  B  text.txt

我自己的解法如下,但想集思廣益下,應該有其他的思路, 并且,我這個方法,如果文本行數(shù)在 10G級別的話,那得耗費多少內(nèi)存呀?

{ ra[NR]=$0}
/B/{ for(i=NR-3;i<=NR+3;i++){if(i>0)ln_pflag[i]=1} }
END { for(j=1;j<=NR;j++){ if(ln_pflag[j]==1)print ra[j] } }

論壇徽章:
2
射手座
日期:2014-10-10 15:59:4715-16賽季CBA聯(lián)賽之上海
日期:2016-03-03 10:27:14
2 [報告]
發(fā)表于 2011-03-23 10:24 |只看該作者
本帖最后由 yinyuemi 于 2011-03-23 23:24 編輯
  1. awk '{a[NR]=$0}/B/{for(i=NR-3;i<NR;i++)print a[i];print;for(j=1;j<=3;j++) {getline;print};exit}'
復制代碼

論壇徽章:
1
摩羯座
日期:2014-12-29 15:59:36
3 [報告]
發(fā)表于 2011-03-23 10:29 |只看該作者
awk '/B/{for(i in a){print a[i]}for(i in a){getline;print}}{a[NR%3]=$0}'

前三行沒順序

論壇徽章:
1
摩羯座
日期:2014-12-29 15:59:36
4 [報告]
發(fā)表于 2011-03-23 10:31 |只看該作者
需要順序的話 可以改改

論壇徽章:
2
射手座
日期:2014-10-10 15:59:4715-16賽季CBA聯(lián)賽之上海
日期:2016-03-03 10:27:14
5 [報告]
發(fā)表于 2011-03-23 10:35 |只看該作者
sed -n '
/B/ !{
H
x
s/^.*\n\(.*\n.*\n.*\)$/\1/
x}
/B/{
H
n
H
n
H
n
H
n
x
p
q}' file

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
6 [報告]
發(fā)表于 2011-03-23 12:31 |只看該作者
使用grep的參數(shù)--line-buffered,看看能不能加快速度~~

論壇徽章:
0
7 [報告]
發(fā)表于 2011-03-23 14:22 |只看該作者
本帖最后由 unixzhong 于 2011-03-23 14:24 編輯

回復 2# yinyuemi

你這個比我的簡潔,

不過假如連續(xù)兩行都有 B匹配命中
你這樣,好像會重復打印部分行, 和 grep -A3 -B3 B 的效果還是有點不一樣, 不知道我說清楚沒有

不會sed,因為我記性差,同時學 sed 和 awk老是搞混語法,:)

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
8 [報告]
發(fā)表于 2011-03-23 14:41 |只看該作者
這個得先搞清楚grep -A -B。重疊時比較麻煩吧。

論壇徽章:
2
射手座
日期:2014-10-10 15:59:4715-16賽季CBA聯(lián)賽之上海
日期:2016-03-03 10:27:14
9 [報告]
發(fā)表于 2011-03-23 14:46 |只看該作者
回復 7# unixzhong


    可以舉個例子么

論壇徽章:
0
10 [報告]
發(fā)表于 2011-03-23 15:39 |只看該作者
回復 8# blackold

黑哥:

我的代碼已經(jīng)可以處理 重疊的情況了,就是想看看有沒有其他 思路,當然我希望是awk實現(xiàn),我不懂sed,:(


yinyuemi:

1111
222
333
4444
5555
B
B
8888
9999
aaaaa
bbbbbb
ccccc
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP