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

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

Chinaunix

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

awk中地址表示的小技巧 [復(fù)制鏈接]

論壇徽章:
1
榮譽(yù)會員
日期:2011-11-23 16:44:17
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2006-01-21 19:09 |只看該作者 |倒序?yàn)g覽
sed中表示地址或地址范圍大家都很熟悉,今天貼幾個(gè)awk中地址表示的小技巧:
  1. 第一行:        NR==1 或 !i++
  2. 第n行:        NR==n
  3. 最后一行:       0 或 "" 或 1==0 或 1>2 ,總之任一個(gè)假值就可以
  4. 匹配正則表達(dá)式RE的行: /RE/
復(fù)制代碼


舉例:
  1. $ seq 10 |awk  '!i++,/3/; NR==6, 0'
  2. 1
  3. 2
  4. 3
  5. 6
  6. 7
  7. 8
  8. 9
  9. 10
復(fù)制代碼


等價(jià)的sed命令:
  1. sed -ne '1,/3/p;6,$p'
復(fù)制代碼

[ 本帖最后由 woodie 于 2006-1-21 19:11 編輯 ]

論壇徽章:
1
榮譽(yù)會員
日期:2011-11-23 16:44:17
2 [報(bào)告]
發(fā)表于 2006-01-21 20:18 |只看該作者
學(xué)習(xí)

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2006-01-21 20:45 |只看該作者
!i++

這個(gè)怎么解?

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2006-01-21 21:22 |只看該作者
最后一行的表示方法不行!
!i++也莫名其妙

論壇徽章:
1
榮譽(yù)會員
日期:2011-11-23 16:44:17
5 [報(bào)告]
發(fā)表于 2006-01-22 01:31 |只看該作者
也許寫成這樣,更容易理解
awk 'NR==1,/3/;NR>=6'

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2006-01-22 08:42 |只看該作者
不行也不懂!請樓上解釋一下!

論壇徽章:
1
榮譽(yù)會員
日期:2011-11-23 16:44:17
7 [報(bào)告]
發(fā)表于 2006-01-22 11:32 |只看該作者
原帖由 大螞蟻 于 2006-1-21 20:45 發(fā)表
!i++

這個(gè)怎么解?


這個(gè)條件只在第一行時(shí)為真一次,然后永遠(yuǎn)為假,與NR==1等價(jià)。
i的初值為0,0在awk中是假值的一種,取反即為真。當(dāng)i非0時(shí),i為真,取反即為假。
這個(gè)有點(diǎn)變態(tài)了,大家忘掉它也罷。^_^

論壇徽章:
1
榮譽(yù)會員
日期:2011-11-23 16:44:17
8 [報(bào)告]
發(fā)表于 2006-01-22 11:36 |只看該作者
原帖由 ruifox 于 2006-1-21 21:22 發(fā)表
最后一行的表示方法不行!
!i++也莫名其妙

你的awk可能版本較老,請換個(gè)awk試試。
0是簡單的假值表示法。也許空串""在你的環(huán)境下能夠工作?

論壇徽章:
1
榮譽(yù)會員
日期:2011-11-23 16:44:17
9 [報(bào)告]
發(fā)表于 2006-01-22 11:42 |只看該作者
原帖由 寂寞烈火 于 2006-1-22 01:31 發(fā)表
也許寫成這樣,更容易理解
awk 'NR==1,/3/;NR>=6'

火兄的這個(gè)不錯(cuò)!贊一個(gè)。更加簡潔,但適用性稍差。
考慮以下這個(gè)情況,打印匹配行之后的所有行:
awk '/RE/,0'
此時(shí)NR>=linenumber的語法就不行了。

論壇徽章:
1
榮譽(yù)會員
日期:2011-11-23 16:44:17
10 [報(bào)告]
發(fā)表于 2006-01-22 11:50 |只看該作者
原帖由 woodie 于 2006-1-22 11:42 發(fā)表

火兄的這個(gè)不錯(cuò)!贊一個(gè)。更加簡潔,但適用性稍差。
考慮以下這個(gè)情況,打印匹配行之后的所有行:
awk '/RE/,0'
此時(shí)NR>=linenumber的語法就不行了。

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

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP