日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sed d D比较

發(fā)布時(shí)間:2023/12/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sed d D比较 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? 函數(shù)參數(shù) D 表示刪除 pattern space 內(nèi)的第一行資料。其指令格式如下:?

[address1,address2]D?


對(duì)上述格式有下面幾點(diǎn)說明 :?

函數(shù)參數(shù) D 最多配合兩個(gè)地址參數(shù)。?
函數(shù)參數(shù) D 與 d 的比較如下 :?
當(dāng) pattern space 內(nèi)只有一數(shù)據(jù)行時(shí) , D 與 d 作用相同。?
當(dāng) pattern space 內(nèi)有多行資料行時(shí)?
D 表示只刪除 pattern space 內(nèi)第一行資料 ; d 則全刪除。?
D 表示執(zhí)行刪除后 , pattern space 內(nèi)不添加下一筆數(shù)據(jù) , 而將剩下的數(shù)據(jù)重新執(zhí)行 sed script ; d 則讀入下一行后執(zhí)行 sed script。


例如:

  • This?line?is?followed?by?1?blank?line.?
  • ?
  • This?line?is?followed?by?2?blank?lines.?
  • ?
  • ?
  • This?line?is?followed?by?3?blank?lines.?
  • ?
  • ?
  • ?
  • This?line?is?followed?by?4?blank?lines.?
  • ?
  • ?
  • ?
  • ?
  • This?is?the?end.?

  • 我想得到的效果是

  • This?line?is?followed?by?1?blank?line.?
  • ?
  • This?line?is?followed?by?2?blank?lines.?
  • ?
  • This?line?is?followed?by?3?blank?lines.?
  • ?
  • This?line?is?followed?by?4?blank?lines.?
  • ?
  • This?is?the?end.?

  • 代碼如下

  • /^$/{?
  • N?
  • /^\n$/d?
  • }?
  • 執(zhí)行后效果如下

    ?

  • This?line?is?followed?by?1?blank?line.?
  • ?
  • This?line?is?followed?by?2?blank?lines.?
  • This?line?is?followed?by?3?blank?lines.?
  • ?
  • This?line?is?followed?by?4?blank?lines.?
  • This?is?the?end.?
  • 這個(gè)過程是這樣的 ?sed是一行一行讀入數(shù)據(jù)的,

    首先讀入第一行,因?yàn)椴⒉黄ヅ?#xff0c;所以直接打印出來,如下:

    ?

  • This?line?is?followed?by?1?blank?line.?
  • 然后讀入第二行,匹配,所以N繼續(xù)讀入第三行,然后再與/^\n$/進(jìn)行匹配,很明顯不匹配,所以內(nèi)容也直接打印出來,如下:

    ?

  • This?line?is?followed?by?1?blank?line.?
  • ?
  • This?line?is?followed?by?2?blank?lines.?
  • 接著讀入第四行,匹配,所以N繼續(xù)讀入第5行,然后與/^\n$/進(jìn)行匹配,因?yàn)榇藭r(shí)讀入的為2個(gè)空行,顯然是匹配的這時(shí)候此2行被刪除,所以此時(shí)打印的結(jié)果依舊如上。

    接著再讀入第5行,不匹配,直接打印出來,如下:

    ?

  • This?line?is?followed?by?1?blank?line.?
  • ?
  • This?line?is?followed?by?2?blank?lines.?
  • This?line?is?followed?by?3?blank?lines.?
  • 接著讀入第6行,匹配,N繼續(xù)讀入第7行,顯然繼續(xù)匹配,所以次2行被刪除

    接著讀入8行,匹配,N繼續(xù)讀入第9行,不匹配,所以把第8 9行打印出來,如下

    ?

  • This?line?is?followed?by?1?blank?line.?
  • ?
  • This?line?is?followed?by?2?blank?lines.?
  • This?line?is?followed?by?3?blank?lines.?
  • ?
  • This?line?is?followed?by?4?blank?lines.?
  • 接著讀入第10行,匹配,N繼續(xù)讀入第11行,顯然繼續(xù)匹配,所以次2行被刪除

    接著讀入第12行,匹配,N繼續(xù)讀入第13行,顯然繼續(xù)匹配,所以次2行被刪除

    最后讀入最后14行,不匹配,直接打印,如下:

    ?

  • This?line?is?followed?by?1?blank?line.?
  • ?
  • This?line?is?followed?by?2?blank?lines.?
  • This?line?is?followed?by?3?blank?lines.?
  • ?
  • This?line?is?followed?by?4?blank?lines.?
  • This?is?the?end.?
  • 而代碼使用D

    代碼如下

  • /^$/{?
  • N?
  • /^\n$/D?
  • }?
  • 他的流程就不同了

    ?

    首先讀入第一行,因?yàn)椴⒉黄ヅ?#xff0c;所以直接打印出來,如下:

  • This?line?is?followed?by?1?blank?line.?

  • 然后讀入第二行,匹配,所以N繼續(xù)讀入第三行,然后再與/^\n$/進(jìn)行匹配,很明顯不匹配,所以內(nèi)容也直接打印出來,如下:

    ?

  • This?line?is?followed?by?1?blank?line.?
  • ?
  • This?line?is?followed?by?2?blank?lines.?

  • 接著讀入第四行,匹配,所以N繼續(xù)讀入第5行,然后與/^\n$/進(jìn)行匹配,因?yàn)榇藭r(shí)讀入的為2個(gè)空行,顯然是匹配的,所以D把第4行刪除,剩下第5行,但是此時(shí)第5行并不會(huì)打印出來,而是作為讀入,繼續(xù)運(yùn)行這個(gè)腳本,也就是說第5行又先匹配/^$/,然后執(zhí)行N,讀入第6行,而此時(shí)內(nèi)容已經(jīng)不匹配/^\n$/,這樣第5行和第6行就直接打印出來了,如下:

    ?

  • This?line?is?followed?by?1?blank?line.?
  • ?
  • This?line?is?followed?by?2?blank?lines.?
  • ?
  • This?line?is?followed?by?3?blank?lines.?
  • 接著讀入第7行,此時(shí)匹配,然后N繼續(xù)讀入第8行,依舊匹配,所以執(zhí)行D,刪除第7行,而第8行繼續(xù)匹配,重新執(zhí)行腳本,N繼續(xù)讀入第9行,此時(shí)依舊匹配,所以刪除第8行,第9行繼續(xù)匹配,N讀入第10行,而此時(shí)不再匹配,所以打印出第9和10行,如下:

    ?

  • This?line?is?followed?by?1?blank?line.?
  • ?
  • This?line?is?followed?by?2?blank?lines.?
  • ?
  • This?line?is?followed?by?3?blank?lines.?
  • ?
  • This?line?is?followed?by?4?blank?line.?
  • 然后讀入11直到最后一行,最后得到所需要的結(jié)果

    ?

    ?

  • This?line?is?followed?by?1?blank?line.?
  • ?
  • This?line?is?followed?by?2?blank?lines.?
  • ?
  • This?line?is?followed?by?3?blank?lines.??
  • ?
  • This?line?is?followed?by?4?blank?line.??
  • ?
  • This?is?the?end.?
  • ?

    ?

    ?

    ?

    ?


    ?

    轉(zhuǎn)載于:https://blog.51cto.com/lsscto/880770

    總結(jié)

    以上是生活随笔為你收集整理的sed d D比较的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。