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

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

Chinaunix

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

awk能否實(shí)現(xiàn)這些功能 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2005-08-10 07:26 |只看該作者 |倒序?yàn)g覽
1.能否實(shí)現(xiàn)在一個(gè)文件里查找符合特定字符串的一行,然后把其前面第5行和后面第5行之間的一段內(nèi)容插入到另一個(gè)文件同樣符合這個(gè)字符串的一行其前面第5行之前.(好繞口啊,不知道我說(shuō)清楚了沒(méi)有)
2.awk里可不可以用變量做文件名.

論壇徽章:
1
榮譽(yù)會(huì)員
日期:2011-11-23 16:44:17
2 [報(bào)告]
發(fā)表于 2005-08-10 07:58 |只看該作者

awk能否實(shí)現(xiàn)這些功能

1,取一定范圍的數(shù)據(jù)用sed,awk,grep均可!
2,可以!
3,見(jiàn)置頂shell基礎(chǔ)十二篇

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2005-08-10 11:55 |只看該作者

awk能否實(shí)現(xiàn)這些功能

一行其前面第5行之前
我試了一下發(fā)現(xiàn)awk可以,但是方法太繁瑣,顯示不出awk的優(yōu)勢(shì),想問(wèn)烈火有沒(méi)有什么簡(jiǎn)便的方法可以實(shí)現(xiàn),如果用sed我只知道一行一行的處理,他需要匹配之后在前幾行插入,想請(qǐng)問(wèn)該怎么辦?
awk實(shí)現(xiàn)方法(想問(wèn)有沒(méi)有簡(jiǎn)單點(diǎn)的方法)
BEGIN{
        found = 0;
        ind=0;
        collected = 6;
        insert_point = -1;
        line_file1 = 0;
        string = ARGV[1];
        delete ARGV[1];
}
{if(NR == FNR && found == 0){
        if ($0 !~ string)
        {
                table[ind] = $0;
                ind = (ind+1)%11;
        }
        else
        {
                found = 1;
                table[ind] = $0;
                ind = (ind+1)%11;
                printf("%d %s\n",ind,$0);
        }
}
else if (NR == FNR && found == 1)
{
        if (collected < 11)
        {
                table[ind] = $0;
                ind = (ind+1)%11;
                collected++;       
        }
        line_file1 = NR;
}
else
{
        output[FNR-1] = $0;
        if ($0 ~ string)
        {
                insert_point = FNR;
                printf("insert point:%d\n",insert_point);
        }
}
}
END{
        if (found == 0)
        {
                print("not found in file1\n";
                exit;
        }
        if (insert_point == -1)
        {
                print("not found in file2\n";
                exit;
        }
        printf("%d %d\n",NR,line_file1);
        for (i = 0; i < NR - line_file1; i++)
        {
                if(i == insert_point - 6)       
                {
                        for(j = 0; j < collected; j++)
                        {
                                ind = (ind == 0? 10: ind-1);
                                printf("%s\n",table[ind]);
                        }
                }
                printf("%s\n",output);
        }
}

論壇徽章:
1
榮譽(yù)會(huì)員
日期:2011-11-23 16:44:17
4 [報(bào)告]
發(fā)表于 2005-08-10 12:21 |只看該作者

awk能否實(shí)現(xiàn)這些功能

用grep試試
grep -A5 -B5 'pattern' file #搜索pattern的前5行到后5行

論壇徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亞冠之浦和紅鉆
日期:2015-06-23 19:10:532015亞冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16賽季CBA聯(lián)賽之山東
日期:2016-01-31 18:25:0515-16賽季CBA聯(lián)賽之四川
日期:2016-02-16 16:08:30程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-06-29 06:20:002017金雞報(bào)曉
日期:2017-01-10 15:19:5615-16賽季CBA聯(lián)賽之佛山
日期:2017-02-27 20:41:19
5 [報(bào)告]
發(fā)表于 2005-08-10 12:24 |只看該作者

awk能否實(shí)現(xiàn)這些功能

awk '{a[NR]=$0}
/pattern/{c++}
c{c++}
c==7{for (i=NR-10;i<=NR;i++) print a;exit} ' file

上下5行

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2005-08-10 19:37 |只看該作者

awk能否實(shí)現(xiàn)這些功能

謝謝各位的幫助.。有了各位的回復(fù)我就不怕白忙活了。
最近剛從網(wǎng)上郵購(gòu)了一本《sed與awk》,發(fā)現(xiàn)以我得水平很難在短時(shí)間內(nèi)看懂?磥(lái)想在工作中省點(diǎn)兒力氣也不容易呀。

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2005-08-10 22:47 |只看該作者

awk能否實(shí)現(xiàn)這些功能

原帖由 "hgfa" 發(fā)表:
謝謝各位的幫助.。有了各位的回復(fù)我就不怕白忙活了。
最近剛從網(wǎng)上郵購(gòu)了一本《sed與awk》,發(fā)現(xiàn)以我得水平很難在短時(shí)間內(nèi)看懂?磥(lái)想在工作中省點(diǎn)兒力氣也不容易呀。

那本書講的很細(xì),認(rèn)真看完了功力一定會(huì)大漲。如果向快速入門的話,還是看看sed1line,遇到不懂的地方,去查查《sed與awk》,這樣也挺好。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2005-08-12 13:25 |只看該作者

awk能否實(shí)現(xiàn)這些功能

waker斑竹果然厲害,寫的非常精簡(jiǎn),那如果要把他放到另外一個(gè)文件匹配字符串前面五行的之前,那又有沒(méi)有什么簡(jiǎn)便的寫法呢
另外烈火兄,solaris下grep是不是沒(méi)有-A -B的參數(shù)呢,我好像沒(méi)能找到啊

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2005-08-12 13:57 |只看該作者

awk能否實(shí)現(xiàn)這些功能

[quote]原帖由 "waker"]......上下5行[/quote 發(fā)表:


如果剛好在文件頭五行內(nèi)或尾都會(huì)出現(xiàn)增加的空行。最好加多個(gè)判斷,文件頭就不用一定取五行了。

  1. awk '{a[NR]=$0;
  2.       if($0~/pattens/) {
  3.         if(NR-5 > 0) n=(NR-5); else n=1;
  4.         for(i=n; i<=NR; i++) print a[i];
  5.         ln=0;
  6.         while(getline && ln<5) {print; ln++;}
  7.       }}' filename
復(fù)制代碼

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2005-08-12 14:49 |只看該作者

awk能否實(shí)現(xià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)專區(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