sed ‘1!G;h;$!d’解析
1 sed簡介
sed是面向流的行編輯器。所謂面向流,是指接受標準輸入的輸入,輸出內容到標準輸出上。sed編輯器逐行處理檔案(或輸入),並將結果傳送到螢幕。
具體過程如下: sed將處理的行讀入到一個臨時快取區中(也稱為模式空間pattern space),sed中的命令依次執行,直到所有命令執行完畢,完成後把該行傳送到螢幕上,清理pattern space中的內容;接著重複剛才的動作,讀入下一行,直到檔案處理結束。
sed每處理完一行就將其從pattern space中刪除,然後將下一行讀入,進行處理和顯示。處理完輸入 檔案的最後一行後,sed便結束執行。sed把每一行都存在臨時緩衝區中,對這個副本進行編輯,所以不會修改原檔案。
2 sed執行流程圖
3 什麼是Pattern Space,Hold Space
Pattern Space相當於車間,sed把流內容在這裡進行處理,Hold Space相當於倉庫,加工的半成品在這裡進行臨時儲存。
由於各種原因,比如使用者希望在某個條件下指令碼中的某個命令被執行,或者希望模式空間得到儲存以便下一次處理,都有可能使得sed在處理檔案的時候不按照正常的流程來進行。這個時候,sed設定了一些高階命令來滿足使用者的要求。
一些高階命令
g: 將hold space中的內容複製到pattern space中,原來pattern space裡的內容被覆蓋
G:將hold space中的內容append到pattern space\n後
h: 將pattern space中的內容複製到hold space中,原來hold space裡的內容被覆蓋
H: 將pattern space中的內容append到hold space\n後
d: 刪除pattern中的所有行,並讀入下一新行到pattern中
D: 刪除multiline pattern中的第一行,不讀入下一行
4 圖解sed ‘1!G;h;$!d’ file
1!G 第一行不執行G命令,從第二行開始執行
$!d 最後一行不刪除
[root@localhost test]# cat file
1 1 1
2 2 2
3 3 3
[root@localhost test]# sed '1!G;h;$!d' file
3 3 3
2 2 2
1 1 1
圖中P代表Pattern Space,H代表Hold Space。綠色代表pattern space中的資料,藍色代表hold space中的資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27181165/viewspace-1276719/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【轉】sed命令n,N,d,D,p,P,h,H,g,G,x解析
- 整理:SED的模式空間與緩衝區及n,N,d,D,p,P,h,H,g,G,x解析模式
- Linux 中 sed命令 h和H選項的應用Linux
- H3D Engine3D
- HTML和CSS <h1> --1-- <h1>HTMLCSS
- Oracle 11g 052題庫解析1Oracle
- JD H5解析H5
- HTML和CSS <h1> --2-- <h1>HTMLCSS
- HTML和CSS <h1> --3-- <h1>HTMLCSS
- Cocos2D-x for XNA類解析(1): CCApplicationAPP
- ICPC2023杭州站題解(B D E F G H J M)
- sed: 1: “…”: invalid command code on Mac OSMac
- JVM中G1垃圾回收器詳細解析JVM
- Halcon一維測量1D Measuring解析
- HTML H1-H6元素HTML
- G. D-FunctionFunction
- H264 NAL層解析
- PHP 解迷宮之 G + H 最小PHP
- snabbdom原始碼解析(二) h函式原始碼函式
- hnswlib hnswalg.h 原始碼解析原始碼
- 入門1~4:H系列
- CF1971H ±1
- sed 工具
- 5W2H1E&5W2H分析法&6W3H1S(轉載)
- Oracle 11G OCP 1Z0-051 所有題目解析Oracle
- Oracle 11G OCP 1Z0-052 所有題目解析Oracle
- 文字處理的金剛鑽 —— sed (GNU/sed)
- Stanford機器人D-H座標系機器人
- CodeForces Round 898 (div 4) H題解析
- 視覺SLAM十四講 第七講 視覺里程計1 3D-3D位姿求解 程式碼解析視覺SLAM3D
- 3D列印(1)3D
- webpack解析(1)Web
- sed 應用
- 遊戲流失分析方法1_5W1H法遊戲
- Windows 10 19H1新版18343和20H1新版18841同時推送Windows
- H265 NALU型別詳細解析型別
- 比較好看的css 自定義樣式(標題 h1 h2 h3)CSS
- 高解析度3D渲染3D