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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
123
最近訪問板塊 發(fā)新帖
樓主: smallpboy
打印 上一主題 下一主題

[學(xué)習(xí)共享] sed-n/N/g/G/h/H/x……進(jìn)來頂頂吧 [復(fù)制鏈接]

論壇徽章:
2
未羊
日期:2013-11-05 11:40:14雙子座
日期:2014-01-03 17:11:01
21 [報告]
發(fā)表于 2012-09-14 14:13 |只看該作者
回復(fù) 1# smallpboy

最近在學(xué)sed,我看了下這位大哥寫的,一開始我就不懂

“[smallpboy @local tmp]$ seq 4 | sed ‘n;d’
1
3
pattern space先讀入1,然后執(zhí)行到n,把下一行2讀入pattern space中并覆蓋原本的1。然后pattern space中的內(nèi)容(2)被刪除(d操作),所以打印出1\n3!
上面是你的例子。

你給的這個例子我的理解是sed讀取第一行1到pattern space,此時pattern space的內(nèi)容為1;
執(zhí)行到n的話把下一行的2讀入并覆蓋pattern space的內(nèi)容1,此時pattern space中的內(nèi)容為2;
執(zhí)行d的話就是把pattern space中的內(nèi)容全部刪除,所以我的理解應(yīng)該是打印出空啊,我感覺我哪邊的理解出問題了,請大哥和各位大牛不吝賜教,謝謝。
   

論壇徽章:
0
22 [報告]
發(fā)表于 2012-09-14 14:57 |只看該作者
sed應(yīng)該是這樣的。你不用"-n"指定它靜默模式的話,當(dāng)pattern space被替換時是會自動輸出的,除非是被刪除了才不會輸出。你加上"-n",變換下各種表達(dá)式,看看結(jié)果。這文章寫的不好,它是我第一次學(xué)時寫的。你加我QQ1174735286,有不懂的再問吧。
回復(fù) 21# kanhuijilei


   

論壇徽章:
2
未羊
日期:2013-11-05 11:40:14雙子座
日期:2014-01-03 17:11:01
23 [報告]
發(fā)表于 2012-09-14 15:33 |只看該作者
回復(fù) 22# smallpboy

就是說pattern space中的1被2替換的話,1就會被打印出來?我剛加你qq了
   

論壇徽章:
0
24 [報告]
發(fā)表于 2012-09-20 16:29 |只看該作者
每日一頂啊~~

論壇徽章:
0
25 [報告]
發(fā)表于 2012-11-20 17:08 |只看該作者
醍醐灌頂,多謝分享~

論壇徽章:
0
26 [報告]
發(fā)表于 2013-01-22 17:24 |只看該作者
過來頂頂了~~

論壇徽章:
6
摩羯座
日期:2013-08-24 10:43:10獅子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午馬
日期:2014-09-28 16:06:0015-16賽季CBA聯(lián)賽之八一
日期:2016-12-19 13:55:0515-16賽季CBA聯(lián)賽之天津
日期:2016-12-20 14:01:23
27 [報告]
發(fā)表于 2013-01-22 18:32 |只看該作者
本帖最后由 cao627 于 2013-01-22 19:15 編輯
[smallpboy @local tmp]$ seq 4 | sed ‘n;d’
1
3
pattern space先讀入1,然后執(zhí)行到n,把下一行2讀入pattern space并覆蓋原本的1。然后pattern中 space中的內(nèi)容(2)被刪除(d操作),所以打印出1\n3。


pattern space先讀入1,然后執(zhí)行到n,n會先把當(dāng)前pattern space的內(nèi)容送到所有命令之后,所以1被打印出,(當(dāng)然是sed 沒帶-n選項的緣故),再把下一行2讀入pattern space并覆蓋原本的1(如果直接想象成1被n轉(zhuǎn)移到了模式空間的出口,即所有命令之后,也就無所謂覆蓋)。然后pattern中 space中的內(nèi)容(2)被刪除(d操作)。即1被n這條機(jī)械臂放到了d之后,被傳送帶送入下道工序——打。╯ed -n ‘’相當(dāng)于關(guān)閉打印機(jī)的全程開啟狀態(tài)),2則被d踢到垃圾桶里去了。

所以:
seq 5 | sed -n 'n;p'
結(jié)果為:
2
4
原因:
-n 關(guān)閉了打印機(jī)的全程開啟狀態(tài);
pattern space先讀入1,然后執(zhí)行到n;n會先把當(dāng)前pattern space的內(nèi)容送到所有命令之后,這里是p之后,此時p還沒被執(zhí)行,即打印機(jī)還沒開啟,所以1被漏印,n再把下一行2讀入pattern space,然后執(zhí)行到p,打印機(jī)開啟,2被打印。
同理3,5被漏印。




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

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