awk next以及getline用法示例

2022-09-13 20:45:16 字數 1368 閱讀 2062

在awk中,如果呼叫next,那麼next之後的命令就都不執行了。此行文字的處理到此結束,開始讀取下一條記錄並操作。

例項如下:

zoer@ubuntu:~$ cat

data

1000

naughty

500cc

400zoer

100zoer@ubuntu:~$ awk

' print $1,$2}

'data

naughty

500cc

400

比如說我們有乙個data檔案,存放了每個人的出差費用。想要列印出來。但是第一行總費用不要列印。那麼使用awk的next忽略掉第一行即可。

與next相似,getline也是讀取下一行資料。但是與next不同的是,next讀取下一行之後,把控制權交給了awk指令碼的頂部。但是getline卻沒有改變指令碼的控制,讀取下一行之後,繼續執行當前的awk指令碼。getline執行之後,會覆蓋$0的內容。

例子如下:

zoer@ubuntu:~$ cat

data

name naughty

25shandong

age

14hah,here is test

zoer@ubuntu:~$ catd$

1=="

name"$

1=="

age"

zoer@ubuntu:~$ awk -f d data

name naughty

25 shandong

例子中,如果遇到行首是name的,就把下一行讀取出來並列印。如果行首是age,就僅僅列印本行。

從執行結果也可以看出來,hah,here is test並沒有列印出來。因為它沒有匹配name或者age開頭。

getline #讀取資料檔案中的行資料,

#這樣就可以取出對應的資料了。

getlin與get的區別

getlin a,len 與get a,len 都是讀取一串字串,遇到回車即停 但是getlin會跳過回車,下一次讀取的時候直接從輸入佇列中跳過回車,讀取下乙個字元 而get不會跳過回車,而是把回車留在輸入佇列中,下一次讀取的時候依然會讀取到回車,所以很多時候用乙個get 把回車讀到,接著讀取下乙個...

什麼是網域名稱以及WSGI 以及URL 以及web

www.baidu.com baidu.com是網域名稱.com是網域名稱字尾.還有.cn org edu gov net等 url 統一資源定位符,也就是 www是worldwide wide web的意思 也叫全球資訊網,或web,是乙個由許多文字鏈結組成的超文字系統,通過internet訪問,...

jasper(Ireport)table以及引數

我是用jaspersoft ireport designer設定模板的。這裡主要介紹如何通過使用table元件以及傳遞引數,資料來自資料庫。閒話少說,直接開始。1.首先建立模板,設計sql的時候,最好要有資料。如果你的報表全部用table做來,就相當於主表沒有任何從資料庫讀出的資訊,可以將sql設計...