好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > sed模式空間和暫存空間的區別

sed模式空間和暫存空間的區別

熱門標簽:衡水外呼線路解決 電話機器人每天搜索多少次 ??谥悄苷Z音電銷機器人好用嗎 艾比利外呼系統 杞縣地圖標注app 免費門店地圖標注注冊入駐 外呼系統一天耗費多少流量 陜西便宜電銷機器人軟件 昆明電話外呼系統好么

sed編輯器逐行處理文件,并將輸出結果打印到屏幕上。sed命令將當前處理的行讀入模式空間(pattern space)進行處理,sed在該行上執行完所有命令后就將處理好的行打印到屏幕上(除非之前的命令刪除了該行),sed處理完一行就將其從模式空間中刪除,然后將下一行讀入模式空間,進行處理、顯示。處理完文件的最后一行,sed便結束運行。sed在臨時緩沖區(模式空間)對文件進行處理,所以不會修改原文件,除非顯示指明-i選項。

與模式空間和暫存空間(hold space)相關的命令:

n 輸出模式空間行,讀取下一行替換當前模式空間的行,執行下一條處理命令而非第一條命令。
N 讀入下一行,追加到模式空間行后面,此時模式空間有兩行。
h 把模式空間里的行拷貝到暫存空間。
H 把模式空間里的行追加到暫存空間。
g 用暫存空間的內容替換模式空間的行。
G 把暫存空間的內容追加到模式空間的行后。
x 將暫存空間的內容于模式空間里的當前行互換。
! 對所選行以外的所有行應用命令。

注意:暫存空間里默認存儲一個空行。

下面是一些例子:

cat datafile
111111111111 aaa
222222222222 bbb
333333333333 ccc
444444444444 ddd
555555555555 eee
666666666666 fff

在每行后面加一空行:

sed 'G' datafile
111111111111 aaa

222222222222 bbb

333333333333 ccc

444444444444 ddd

555555555555 eee

666666666666 fff

aaa行被讀入模式空間,執行G,在此行后面追加一個空行,然后打印模式空間,其他行同理。

在匹配行后加一空行:

sed '/ccc/G' datafile
111111111111 aaa
222222222222 bbb
333333333333 ccc

444444444444 ddd
555555555555 eee
666666666666 fff

在匹配行前加入一個空行:

sed '/ccc/{x;p;x;}' datafile
111111111111 aaa
222222222222 bbb

333333333333 ccc
444444444444 ddd
555555555555 eee
666666666666 fff

命令執行前后暫存空間和模式空間的變化情況:

命令     暫存空間                                         模式空間
x           執行前:null 執行后:ccc\n              執行前:ccc\n 執行后:null
p          執行前:null 執行后:ccc\n              執行前:ccc\n 執行后:null 輸出一個空行
x          執行前:ccc\n 執行后:null              執行前:null 執行后:ccc\n 輸出ccc所在行

(注:把ccc所在行簡寫為ccc)

刪除偶數行:

sed '{n;d;}' datafile
111111111111 aaa
333333333333 ccc
555555555555 eee

執行n后打印第一行,然后讀入第二行執行d命令,即刪除此行;然后在執行n打印第三行,然后讀入第四行執行d命令,依此類推。

在偶數行后添加一新行:

sed '{n;G;}' datafile
111111111111 aaa
222222222222 bbb

333333333333 ccc
444444444444 ddd

555555555555 eee
666666666666 fff

執行 n 以后將第一行輸出到標準輸出以后,然后第二行進入模式空間,根據前面對 G 的解釋,會在第二行后面插入一個空行,然后輸出;再執行 n 將第三行輸出到標準輸出,然后第四行進入模式空間,并插入空行,依此類推。
相應的:sed '{n;n;G;}' datafile 表示在文件的第 3,6,9,12,… 行后面插入一個空行。

將偶數行置空:

sed '{n;g;}' datafile
111111111111 aaa

333333333333 ccc

555555555555 eee

執行n后打印第一行,然后讀入第二行執行g命令,g命令用暫存空間內容(null)來替換當前模式空間,即第二行被置空。其它行依此類推。

合并偶數行到上一行:

sed '{N;s/\n/\t/;}' datafile
111111111111 aaa 222222222222 bbb
333333333333 ccc 444444444444 ddd
555555555555 eee 666666666666 fff

執行N,將第二行追加到模式空間的第一行后,此時模式空間用兩行,然后執行替換(s)將第一個換行符替換成tab。其它行依此類推。

加行號,大致相當于cat -n datafile:

sed = datafile
1
111111111111 aaa
2
222222222222 bbb
3
333333333333 ccc
4
444444444444 ddd
5
555555555555 eee
6
666666666666 fff

sed = datafile |sed '{N;s/\n/\t/;}'
1 111111111111 aaa
2 222222222222 bbb
3 333333333333 ccc
4 444444444444 ddd
5 555555555555 eee
6 666666666666 fff

輸出文件最后2行,相當于 tail -2 datafile

sed '{$!N;$!d;}' datafile
555555555555 eee
666666666666 fff

sed '{$!N;$!d;}' : 對文件倒數第二行以前的行來說,N 將當前行的下一行追加到模式空間中以后,D 就將模式空間的內容刪除了;到倒數第二行的時候,將最后一行追加到倒數第二行下面,然后最后一行不執行 d(!對所選行-此處是最后一行,以外的行執行命令) ,所以文件的最后兩行都保存下來了。

將文件的行反序顯示,相當于 tac 命令:

sed '{1!G;h;$!d;}' datafile
666666666666 fff
555555555555 eee
444444444444 ddd
333333333333 ccc
222222222222 bbb
111111111111 aaa

1!G表示除了第一行以外,其余行都執行G命令;$!d表示除了最后一行以外,其余行都執行d命令。

看一下sed '{1!G;h;$!d;}'命令執行過程中暫存空間與模式空間的變化:

處理行        命令         暫存空間                                                                          模式空間
第一行        h;d           執行前:null 執行后:aaa\n                                             執行前:aaa\n 執行后:null
第二行        G;h;d       執行前:aaa 執行后:bbb\n1111\n                                 執行前:bbb\n 執行后:null
最后一行    G;h          執行前:eee\n…aaa\n 執行后:fff\n…bbb\n\aaa\n       執行前:eee\n 執行后:fff\n…bbb\n\aaa\n

(注:把各個行簡寫了)

標簽:臨滄 南京 西寧 營口 昌都 泰安 宿遷

巨人網絡通訊聲明:本文標題《sed模式空間和暫存空間的區別》,本文關鍵詞  sed,模式,空間,和,暫存,空,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《sed模式空間和暫存空間的區別》相關的同類信息!
  • 本頁收集關于sed模式空間和暫存空間的區別的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 天天躁天天爽天天揉免费精品毛片| 日本无码A片免费网站| 午夜影院操一| 69久久精品无码一区二区按摩| 日本精品秘?进口Av网站| 美女隐私黄| 精品日产一区二区三区| 九九操视频| 日本午夜大片a在线观看| 性生生活大片又黄又爽| 狠狠干导航| 国产成人精品三上悠亚久久| 欧美成人爽快片婬乱视频绝吊丝| 国产一级爱c片免费播放| 亚洲97| 免费无遮挡??视频网站用鲁鲁社| 888亚洲欧美国产va在线观看| 瑜伽女教练国产AV视频| 国产成本人三级在线观看网站| 三级理论电影手机在线观看| 亚洲 日韩 欧美 丝袜 制服| 小辣椒导航精品福利视频| 一夫四女的烂伦小说| 粗大挺进清纯同桌呻吟| 免费b站看大片真人直播| 国产伦精品一区二区三区免费肉| 日批视频网址免费观看| 在线观看污视频| 乱人伦30p| 国产网红亚洲欧美精品| 各位女明星牺牲最大的一部剧| 女人j吃男人j的免费版| 欧美乱强伦xxxxx| yw.193.爆乳尤物.ccm| 欧美毛片一级A片免费播放巨人 | 呻吟揉丰满对白91乃国产区| 侵犯の奶水授乳风车动漫| 洗濯屋动漫在线| 亚洲三级毛片| 久久精品国产亚洲AV无码85| 欧美成人a视频|