Sed æ¯ä¸ä¸ªæµç¼è¾å¨ï¼æ¤ Sed å¤å¿æ¸ åå å« Sed å½ä»¤åä¸äºå¸¸è§ç Sed æå·§ã
è¯æ³
$ sed [options] command [input-file]
带管é
$ cat report.txt | sed 's/Nick/John/g'
$ echo '123abc' | sed 's/[0-9]+//g'
| åæ° | ç¤ºä¾ | æè¿° |
|---|---|---|
-i | sed -ibak 's/On/Off/' php.ini | ç´æ¥å¤ä»½åä¿®æ¹è¾å ¥æä»¶ |
-E | sed -E 's/[0-9]+//g' input-file | ä½¿ç¨æ©å±æ£åè¡¨è¾¾å¼ |
-n | sed -n '3 p' config.conf | ç¦æ¢é»è®¤å¾æ¡ç©ºé´æå° |
-f | sed -f script.sed config.conf | æ§è¡ sed èæ¬æä»¶ |
-e | sed -e 'command1' -e 'command2' input-file | æ§è¡å¤ä¸ª sed å½ä»¤ |
$ echo "hello world" | sed -e 's/h/H/g' -e 's/w/W/g'
Hello World
ä½¿ç¨ -e æ§è¡å¤ä¸ª sed å½ä»¤
$ echo 's/h/H/g' >> hello.sed
$ echo 's/w/W/g' >> hello.sed
$ echo "hello world" | sed -f hello.sed
Hello World
ä½¿ç¨ -f æ§è¡ sed èæ¬æä»¶
$ sed 's/old/new/g' file.txt
$ sed 's/old/new/g' file.txt > new.txt
$ sed 's/old/new/g' -i file.txt
$ sed 's/old/new/g' -i.backup file.txt
| å½ä»¤ | ç¤ºä¾ | æè¿° |
|---|---|---|
p | sed -n '1,4 p' input.txt | æå°ç¬¬ 1-4 è¡ |
p | sed -n -e '1,4 p' -e '6,7 p' input.txt | æå°ç¬¬ 1-4 è¡å第 6-7 è¡ |
d | sed '1,4 d' input.txt | æå°é¤ 1-4 ä¹å¤çè¡ |
w | sed -n '1,4 w output.txt' input.txt | å°æ¨¡å¼ç©ºé´åå ¥æä»¶ |
a | sed '2 a new-line' input.txt | å¨åé¢è¿½å ä¸è¡ |
i | sed '2 i new-line' input.txt | å¨åé¢æå ¥è¡ |
| å½ä»¤ | æè¿° |
|---|---|
n | æå°æ¨¡å¼ç©ºé´ï¼ç©ºæ¨¡å¼ç©ºé´ï¼è¯»åä¸ä¸è¡ |
x | ç¨ä¿æç©ºé´äº¤æ¢æ¨¡å¼ç©ºé´ |
h | å¤å¶æ¨¡å¼ç©ºé´ä»¥ä¿æç©ºé´ |
H | è¿½å æ¨¡å¼ç©ºé´ä»¥ä¿æç©ºé´ |
g | å°ä¿æç©ºé´å¤å¶å°æ¨¡å¼ç©ºé´ |
G | å°ä¿æç©ºé´éå å°æ¨¡å¼ç©ºé´ |
$ sed 's/old/new/[flags]' [input-file]
| Flag | Description |
|---|---|
g | å ¨çæ¿ä»£ |
1,2... | æ¿æ¢ç¬¬ n 次åºç° |
p | ä» æå°æ¿æ¢çè¡ |
w | ä» å°æ¿æ¢çè¡åå ¥æä»¶ |
I | æç´¢æ¶å¿½ç¥å¤§å°å |
e | å¨å½ä»¤è¡ä¸æ¿æ¢å¹¶æ§è¡ |
| Command | Description |
|---|---|
b label | 忝尿 ç¾ï¼ç¨äºå¾ªç¯ï¼ |
t label | ä» å¨æåæ¿æ¢æ¶åæ¯å°æ ç¾ï¼ç¨äºå¾ªç¯ï¼ |
:label | b å t å½ä»¤çæ ç¾ï¼ç¨äºå¾ªç¯ï¼ |
N | å°ä¸ä¸è¡è¿½å å°æ¨¡å¼ç©ºé´ |
P | å¤è¡æå°ç¬¬ä¸è¡ |
D | å é¤å¤è¡ä¸ç第ä¸è¡ |
| Flag | Description |
|---|---|
/ | ^ @ ! # | æ¿æ¢åé符å¯ä»¥æ¯ä»»ä½å符 |
& | è·åå¹é çæ¨¡å¼ |
( ) \1 \2 \3 | ä½¿ç¨ ( å ) è¿è¡åç»ãä½¿ç¨ \1ã\2 æ¿æ¢æ¥å¼ç¨ç» |
æ¿æ¢ææåºç°çå符串
$ sed 's/old/new/g' file.txt
ä» æ¿æ¢ç¬¬ n 次åºç°çå符串
$ sed 's/old/new/2' file.txt
ä» å¨ç¬¬ 5 è¡æ¿æ¢æ¿æ¢å符串
$ sed '5 s/old/new/' file.txt
å°âworldâæ¿æ¢ä¸ºâuniverseâï¼ä½åææ¯è¯¥è¡ä»¥âhelloâå¼å¤´
$ sed '/hello/s/world/universe/' file.txt
仿¯è¡çæ«å°¾å é¤â\â
$ sed 's/\\$//' file.txt
å 餿¯è¡å¼å¤´çææç©ºæ ¼
$ sed 's/^\s*//' file.txt
å é¤è¯è®ºã å³ä½¿æ¯é£äºå¨è¡å°¾ç
$ sed 's/#.*$//' file.txt
æç´¢åç¬¦ä¸²å¹¶ä» æå°å¹é çè¡
$ sed -n '/hello/p' file.txt
ä¸åºå大å°åçæç´¢
$ sed -n '/hello/Ip' file.txt
æç´¢å符串ï¼ä½ä» è¾åºä¸å¹é çè¡
$ sed -n '/hello/!p' file.txt
å¨ç¬¬ 2 è¡ä¹å追å ä¸è¡
$ sed '2a Text after line 2' file.txt
卿件æ«å°¾è¿½å ä¸è¡
$ sed '$a THE END!' file.txt
ä»ç¬¬ 3 è¡å¼å§ï¼æ¯ 3 è¡å追å ä¸è¡
$ sed '3~3a Some text' file.txt
æä»¶çæ°åè¡ï¼ç®åç左对é½ï¼
$ sed = file.txt | sed 'N;s/\n/\t/'
æä»¶çæ°åè¡ï¼æ°åå¨å·¦ï¼å³å¯¹é½ï¼
$ sed = file.txt | sed 'N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /'
æä»¶çæ°åè¡ï¼ä½å¦æè¡ä¸ä¸ºç©ºï¼åä» æå°æ°å
$ sed '/./=' file.txt | sed '/./N; s/\n/ /'
计ç®è¡æ°ï¼æ¨¡æâwc -lâï¼
$ sed -n '$='
å¨ç¬¬ 5 è¡ä¹åæå ¥ææ¬
$ sed '5i line number five' file.txt
å¨å å«âhelloâçæ¯ä¸è¡ä¹åæå ¥â示ä¾ï¼â
$ sed '/hello/i Example: ' file.txt
å 餿件ä¸ç第 5-7 è¡
$ sed '5,7d' file.txt
å é¤ä»ç¬¬ 3 è¡å¼å§çæ¯ 2 è¡
$ sed '3~2d' file.txt
å 餿件çæåä¸è¡
$ sed '$d' file.txt
å é¤ä»¥âHelloâå¼å¤´çè¡
$ sed '/^Hello/d' file.txt
å 餿æç©ºè¡
$ sed '/^$/d' file.txt
å é¤ä»¥â#âå¼å¤´çè¡
$ sed '/^#/d' file.txt
ååè¡è·
$ sed G
å 餿æç©ºè¡ååç©ºæ ¼
$ sed '/^$/d;G'
ä¸åç©ºé´æä»¶
$ sed 'G;G'
æ¤æ¶ååè¡è·
$ sed 'n;d'
å¨å¹é âæ£å表达å¼âçè¡ä¸æ¹æå ¥ä¸ä¸ªç©ºè¡
$ sed '/regex/{x;p;x;}'
å¨å¹é âæ£å表达å¼âçè¡ä¸æ¹æå ¥ä¸ä¸ªç©ºè¡
$ sed '/regex/G'
å¨å¹é âæ£å表达å¼âçè¡å¨å´æå ¥ä¸ä¸ªç©ºè¡
$ sed '/regex/{x;p;x;G;}'