- 論壇徽章:
- 0
|
本帖最后由 ivorning 于 2014-07-25 17:21 編輯
[root@oracle tmp]# cat e_test.txt
1
2
3
4
5
6
[root@oracle tmp]# sed -e '1,2d' -e '1,2d' e_test.txt
4
5
6
我想我應該已經明白這個執(zhí)行過程了
1、讀入1,進入sed執(zhí)行,滿足第一個e中的1,2,開關開啟,刪掉1
2、讀入2,進入sed執(zhí)行,滿足第一個e中的1,2,開關關掉,刪掉2,此時第一個e中的1,2d已經被前兩行帶走開房了,后面的行都沒有機會了
3、讀入3,進入sed執(zhí)行,此時命令中僅剩一個e,命令為1,2d,此時3進入執(zhí)行,行號3>1,被判定為滿足,所以執(zhí)行刪除3,由于3>2,所以開關在這一行就被關閉了,所以第二個e中的1,2d被3自己帶走開房了
4、對于后面的456,sed中相當于沒有命令了,所以就直接打印出來了
我自己又做了個實驗
sed '1,2d;1,2d;1,2d' e_test.txt
結果是只顯示5,6 與上面的理解不矛盾,就是多了個4把第三個1,2d帶走開放這一步,4當然也因為部分滿足1,2d(4>1),被刪掉了~~ |
|