shell指令碼學習sed

2021-07-07 06:23:52 字數 1087 閱讀 3340

-i 替換並儲存

's/pattern/replace_string/' 只替換第一處

's/pattern/replace_string/g' 替換所有

's/pattern/replace_string/ng' 從第n處開始匹配

# ex 直接替換文字

[clz@localhost shell_learn]$ sed -i 's/cecho.sh/************xx/' file_sum.md5

sed

# 移除空白行

sed 's/\b[0-9]\\b/number/g' file

匹配兩位數字 \b為邊界

[clz@localhost shell_learn]$ echo this

is an example | sed 's/\w\+/[&]/g'

[this] [is] [an] [example]

第一條命令將digit 替換為 7。樣式中匹配到的子串是7.\(pattern\)用於匹配子串。模式被包括在使用斜線轉義過的()中。對於匹配到的第乙個子串, 其對應的標記是\1, 匹配到的第二個子串是\2, 往後依次類推。

# ex 1

[clz@localhost ~]$ echo this

is digit 7

in a number | sed 's/digit \([0-9]\)/\1/'

thisis7

in a number

# ex 2 將兩個匹配到的字串交換

[clz@localhost ~]$ echo seven eight | sed 's/\([a-z]\+\) \([a-z]\+\)/\2 \1/'

eight seven

sed表示式通常用單引號來引用。也可以用雙引號,通過對表示式求職進行擴充套件。

text=hello

echo hello world | sed "s/$text/hello/"

hello world

Shell指令碼的學習 sed

sed是流編輯器,對文字進行批量化處理。sed option script file1 file2 sed option f scriptfile file1 file2 sed 處理的檔案既可以由標準輸入重定向得到,也可以當命令列引數傳入,命令列引數可以一次傳入多個檔案,sed會依次處理。sed的...

Shell指令碼學習之sed詳解

linux 1 目錄 sed編輯器逐行處理檔案 或輸入 並將結果傳送到螢幕。具體過程如下 首先sed把當前正在處理的行儲存在乙個臨時快取區中 也稱為模式空間 然後處理臨時緩衝區中的行,完成後把該行傳送到螢幕上。sed每處理完一行就將其從臨時緩衝區刪除,然後將下一行讀入,進行處理和顯示。處理完輸入檔案...

Shell指令碼補充 sed

var 10 a haha echo var 10 echo 10 echo ab 為空 echo b 輸出hahab a abcdcba echo 輸出abcdcba 完全匹配失敗 echo 輸出dcba abc被刪除了 即到第乙個被匹配的c echo a 輸出abcdcba 不會對源資料做修改a...