SED
目录
SED
åç§°æè¦
æè¿°
å½ä»¤æè¦
é¶å°åâå½ä»¤â
é¶æä¸å°åå½ä»¤
æ¥åèå´å°åçå½ä»¤
å°å
æ£å表达å¼
BUGS
ä½è
çæ
åè§
è·
åç§°
sed - ææ¬çéåæ ¼å¼è½¬æ¢çæµå¼ç¼è¾å¨
æè¦
sed [é项]... {script-only-if-no-other-script} [è¾å¥æä»¶]...
æè¿°
Sedæ¯ä¸ä¸ªæµå¼ç¼è¾å¨ãæµå¼ç¼è¾å¨æ¯ç¨æ¥å¨è¾å¥æµï¼ä¸ä¸ªæä»¶æè管éè¾å¥ï¼ä¸ å®æåºæ¬ææ¬è½¬æ¢çãå½å¨ä¸äºåè®¸èæ¬ç¼è¾çç¼è¾å¨ä¸ï¼æ¯å¦edï¼ï¼sedéè¿å° è¾å¥ä¼è¾ä¸ºä¸ä¸ªè¾å¥æ¥å·¥ä½ï¼è¿æ ·æ´é«æã使¯æ¯sedçåè½æ¥è¿æ»¤ç®¡éçææ¬å¹¶ ä»å¶ä»ç±»åçç¼è¾å¨ä¸ç¹å«è¯å«åºè¿äºææ¬ã
|
-n, --quiet, --silent |
ä¸èªå¨æå°æ¨¡å¼ç©ºé´çå容
|
-e èæ¬, --expression=èæ¬ |
æ·»å èæ¬å°å°è¦æ§è¡çå½ä»¤
|
-f èæ¬æä»¶, --file=èæ¬æä»¶ |
æ·»å èæ¬æä»¶çå容å°å³å°æ§è¡çå½ä»¤
|
--follow-symlinks |
å¤çå·²å卿件æ¶è·é龿¥
|
-i[SUFFIX], --in-place[=SUFFIX] |
ç¼è¾å·²åå¨çæä»¶ï¼å¦ææä¾äºSUFFIXä½ä¸ºåç¼ååå¤ä»½ï¼
|
-l N, --line-length=N |
æå®’l’å½ä»¤éè¦çèªå¨æ¢è¡é¿åº¦
|
--posix |
ç¦ç¨ææGNUæä»¶ã
|
-E, -r, --regexp-extended |
å¨èæ¬ä¸ä½¿ç¨æ©å±æ- £å表达å¼ï¼ä¸ºäºå¯ç§»æ¤æ§ï¼è¯·ä½¿ç¨ç¬¦åPOSIXç-Eï¼
|
-s, --separate |
å°å¤ä¸ªæä»¶åå«çå¾ï¼èéç»ä¸è§ä½å个è¿ç»çæµã
|
--sandbox |
卿²ç®±æ¨¡å¼ä¸æä½ã
|
-u, --unbuffered |
ä»è¾å¥æä»¶ä¸è¯»åæå°éçæ°æ®å¹¶æ´é¢ç¹å°å·æ°è¾åºç¼å²åº
|
-z, --null-data |
ç¨NULå符åå²è¡
--help
æ¾ç¤ºè¿ä¸ªå¸®å©å¹¶éåº
--version
è¾åºçæ¬ä¿¡æ¯å¹¶éåº
å¦ææ²¡æç»åº-eï¼--expressionï¼-fï¼æè--fileéé¡¹ï¼ é£ä¹ç¬¬ä¸ä¸ªéé项忰ä¼è¢«å½ä½sedèæ¬è§£éãææä½ä¸çåæ°æ¯è¾å¥æä»¶çåç§°ï¼ å¦ææ²¡ææå®è¾å¥æä»¶ï¼é£ä¹å°±ä¼è¯»åæ åè¾å¥ã
GNU sed主页ï¼<http://www.gnu.org/software/sed/>ã使ç¨GNU软件çéç¨å¸®å© ï¼<http://www.gnu.org/gethelp/>ãBugæ¥å请åéçµå- é®ä»¶è³ï¼<bug-sed@gnu.org>ã
å½ä»¤æè¦
è¿åªæ¯ä¸ºå·²ç»ç¥ésedå½ä»¤åç¸å³ææ¡£ï¼ä¾å¦texinfoææ¡£ï¼ï¼éè¦ç¿»éå½ä»¤å®æ´ æè¿°ç人åå¤çsedå½ä»¤çç®çæè¦ã
é¶å°åâå½ä»¤â
: label
b å t å½ä»¤çæ ç¾ã
#comment
注éå°ä¼å»¶é¿å°ä¸ä¸ä¸ªæ°è¡ (æèä¸ä¸ª -e èæ¬çæ®µçç»å°¾ãï¼
|
} |
ä¸ä¸ª{ }åç鿬å·ã |
é¶æä¸å°åå½ä»¤
|
= |
çåºå½åè¡çè¡å·ã |
|||
|
a \ |
||||
|
text |
追å text, textå¯ä»¥éè¿é¢ååå¥åææ æ¥åµå¥æ°è¡ã |
|||
|
i \ |
||||
|
text |
æå¥ text, textå¯ä»¥éè¿é¢ååå¥åææ æ¥åµå¥æ°è¡ã |
q [exit-code]
ç«å³éåºsedèæ¬èä¸å¤çå¶ä»è¾å¥ï¼é¤éèªå¨æå°æ²¡æç¦ç¨ä½¿å¾å½åæ¨¡å¼ ç©ºé´å°ä¼è¢«æå°ã[exit-code]æ¯GNUæä»¶ï¼æ©å±ï¼ã
Q [exit-code]
ç«å³éåºsedèæ¬èä¸å¤çå¶ä»è¾å¥ãè¿æ¯ä¸ä¸ªGNUæä»¶ã
r æä»¶å
ä» æä»¶å 读åå容并追å å°æåã
R æä»¶å
ä» æä»¶å 读åä¸è¡å¹¶è¿½å å°æåãæ¯æ¬¡è°ç¨è¿ä¸ªå½ä»¤å°±ä»æä»¶ä¸- 读åä¸ è¡ãè¿æ¯ä¸ä¸ªGNUæä»¶ã
æ¥åèå´å°åçå½ä»¤
|
{ |
å¼å§ä¸ä¸ªå½ä»¤åï¼ä»¥ä¸ä¸ª}ç»æï¼ã |
b label
ç¨åºè·³è½¬å°labelå¤;妿label被çç¥ï¼è·³è½¬å°èæ¬å°¾é¨ã
|
c \ |
|||
|
text |
ç¨ text 代æ¿éæ©çè¡, text å¯ä»¥éè¿é¢ååå¥åææ æ¥åµå¥æ°è¡ã | ||
|
d |
å 餿¨¡å¼ç©ºé´ã å¼å§ä¸ä¸ä¸ªå¾ªç¯ã | ||
|
D |
å¦ææ¨¡å¼ç©ºé´å嫿°è¡ï¼å¨då½ä»¤åå¸ä¹åå¼å§ä¸ä¸ªæ°çæ®é循ç¯ãå¦åï¼ å 餿¨¡å¼ç©ºé´ä¸çtextç´å°æ°è¡ï¼å¹¶ä¸å¨ä¸è¯»å¥æ°è¡çæåµä¸ï¼ç¨ç»æç 模å¼ç©ºé´å¼å§ä¸ä¸ªå¾ªç¯ã | ||
|
h H |
å¤å¶/è¿½å æ¨¡å¼ç©ºé´å°ä¿å空é´ã | ||
|
g G |
å¤å¶/追å ä¿å空é´å°æ¨¡å¼ç©ºé´ã | ||
|
l |
ç¨âç´è§æç¡®âçæ ¼å¼ååºå½åè¡ã |
l width
ç¨âç´è§æç¡®âçæ ¼å¼ååºå½åè¡ï¼å¨widthå符å¤ç»æãè¿æ¯ä¸ä¸ªGNUæä»¶ã
|
n N |
读å/追å ä¸ä¸è¡è¾å¥å°æ¨¡å¼ç©ºé´ã |
|||
|
p |
è¾åºå½åçæ¨¡å¼ç©ºé´ã |
|||
|
P |
è¾åºç´å°éå°å½å模å¼ç©ºé´ç第ä¸ä¸ªåµå¥çæ¢è¡ç¬¦ã |
s/regexp/replacement/
å°è¯ä¸æ¨¡å¼ç©ºé´å¹éregexpï¼å¦ææåï¼ç¨replacement代æ¿å¹éçé¨å ãreplacementå¯è½åå«ç¹æ®å符&æ¥å¼ç¨æ¨¡å¼ç©ºé´ä¸å¹éçé¨åï¼èç¹æ® å- 符\1å°\9åå¼ç¨regexpä¸å¯¹åºå¹éçå表达å¼ã
t label
èªä¸æ¬¡è¾å¥è¡è¯»åä¹åå¹¶ä¸ä¸æ¬¡æ§è¡äºtæèTå½ä»¤ä¹åï¼å¦æä¸ä¸ªs///被 æåæ¿æ¢ï¼é£ä¹è·³è½¬å°labelå¤;妿label被忽ç¥ï¼è·³è½¬å°èæ¬ç»å°¾ã
T label
èªä¸æ¤è¾å¥è¡è¯»åä¹åå¹¶å䏿¬¡æ§è¡äºtæèTå½ä»¤ä¹åï¼å¦æä¸ä¸ªs///被 æåæ¿æ¢ï¼é£ä¹è·³è½¬å°labelå¤;妿label被忽ç¥ï¼è·³è½¬å°èæ¬ç»å°¾ãè¿æ¯ ä¸ä¸ªGNUæä»¶ã
w filename
å°å½åçæ¨¡å¼ç©ºé´åå¥å°filenameä¸ã
W filename
åå¥å½å模å¼ç©ºé´ç第ä¸è¡å°filenameä¸ãè¿æ¯ä¸ä¸ªGNUæä»¶ã
|
x |
äº¤æ¢æ¨¡å¼ç©ºé´åä¿å空é´çå容ã |
y/source/dest/
å°æ¨¡å¼ç©ºé´ä¸æ¾ç¤ºä¸ºsourceçå符ç¨destå符æ¥ååºã
å°å
Sedå½ä»¤å¯ä»¥æ²¡ææå®å°åï¼è¿æ ·å°ä¼ä¸ºææè¡æ§è¡å½ä»¤ã妿ç»åºäºä¸ä¸ªå°åï¼ è¿æ ·å½ä»¤å°±åªä¼ä¸ºå¹éæ- ¤å°åçè¡æ§è¡ï¼å¦æç»åºäºä¸¤ä¸ªå°åï¼è¿æ ·å½ä»¤å°ä¼å¯¹ ä»å¹éç第ä¸ä¸ªå°åå°ç¬¬äºä¸ªå°åçåºåçææè¾å¥è¡æ§è¡å½ä»¤ã å³äºå°åèå´æä¸ç¹ï¼è¯æ³ä¸ºï¼addr1 , addr2ï¼æ¯å¦ï¼å°åè¦ç¨éå·åå¼ï¼ï¼ addr1å¹éçè¡ä¸å®ä¼è¢«æ¥åï¼å³ä½¿addr2éå®çæ¯æ´é åçè¡ï¼å¹¶ä¸å¦æaddr2æ¯ ä¸ä¸ªregexpï¼æ£å表达å¼ï¼ï¼å®å°ä¸ä¼é夿µè¯addrå¹éçè¡ã
å¨å°åï¼æå°åèå´ï¼ä¹åï¼å¨å½ä»¤ä¹åï¼å¯ä»¥æå¥ä¸ä¸ª!ï¼è¿ä¸ªç¬¦å·å®ä¹çå½ä»¤ åªæå¨å°åï¼å°åèå´ï¼ä¸å¹éçæ¶åæè½æ§è¡ã
æ¯æä¸é¢çå°åç±»åï¼
|
number |
åªå¹éè¡å·ä¸ºnumberçè¡ãï¼é¤é-sé项å¨å½ä»¤è¡ä¸è¢«æå®ï¼numberå¼å° ä¼æç§æä»¶æ°æ¸å¢ãï¼ |
first˜step
å¹éæ¯ä¸ä¸ªç¬¬stepè¡å¹¶ä»firstå¼å§è®¡æ°ã举个æ å1‘sed -n 1˜2p’’å° æå°åºè¾å¥æµææå¥æ°è¡ï¼èå°å2˜5å°å¹éä»ç¬¬2è¡å¼å§çï¼ä»¥5为æ¥é¿ç è¡ãfirstå¯ä»¥æ¯é¶ï¼è¿æ ·ï¼sedæå¶ä¸ºstepæ¥æä½ãï¼è¿æ¯ä¸ä¸ªæä»¶ãï¼
|
$ |
å¹éæè¿çè¡ã |
/regexp/
å¹éç¬¦åæ£å表达å¼regexpçè¡ã
\cregexpc
å¹éç¬¦åæ£å表达å¼regexpçè¡ã å¶ä¸cå¯ä»¥æ¯ä»»æå符ã
GNUsedåæ ·æ¯ææäºç¹æ®2å°åæ ¼å¼ï¼
0,addr2
ä»âå¹éäºç¬¬ä¸ä¸ªå°åâç¶æå§ï¼ç´å°åç°addr2ãè¿å1, addr2å¾ç¸ä¼¼ï¼ é¤äºå½addr2å¹éäºè¾å¥ç第ä¸è¡ï¼0, addr2å½¢å¼å°å¨è¯¥èå´çç»å°¾ï¼è 1, addr2å½¢å¼ä»ç¶å¨è¯¥èå´çå¼å§ãè¿ç§å½¢å¼åªæå¨addr2æ¯æ£åè¡¨è¾¾å¼ çæåµä¸æææã
addr1,+N
å°ä¼å¹é addr1 åå¨ addr1 ä¹åç N è¡ã
addr1,˜N
å°ä¼å¹é addr1 å addr1 ä¹åçè¾å¥è¡æ°æ¯ N åçä¸ä¸è¡ã
æ£å表达å¼
POSIX.2 BREsåºè¯¥æ¯æ¯æçï¼ä½æ¯ç±äºæ§è½çåå ï¼è¿ä¸ªç¹æ§è¿ä¸å®å¨ãå¶ä¸ \nåºåå¹éæ¢è¡ç¬¦ï¼\aã\tåå¶ä»åºå乿¯ç±»ä¼¼çã-Eé项å¼å³ç¨æ¥éæ©æ¯å¦ä½¿ç¨æ©å±æ- £å 表达å¼ï¼-Eé项已ç»ç±GNU sedæ¯æäºå¾å¤å¹´ï¼ç°å·²åå«äºPOSIXä¸ã
BUGS
请å°é误æ¥ååéè³bug-sed@gnu.orgãå¦å¤ï¼è¯·å¨é®ä»¶æ£æä¸å°½éåå« ‘‘sed --version’’çä¿¡æ¯ã
ä½è
ç± Jay Fenlason, Tom Lord, Ken Pizzini, å Paolo Bonziniåæã GNU sed 主页: <http://www.gnu.org/software/sed/>. ä½¿ç¨ GNU 软件çä¸è¬æ§æå: <http://www.gnu.org/gethelp/>. E-mail bug æ¥åå°: <bug-sed@gnu.org>.
çæ
Copyright ©
2017 Free Software Foundation, Inc. License GPLv3+: GNU GPL
version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and
redistribute it. There is NO WARRANTY, to the extent
permitted by law.
åè§
awk(1), ed(1), grep(1), tr(1), perlre(1), sed.info, ä»»ä½åsedç¸å³ç书ç±ï¼ sed常è§é®é¢(http://sed.sf.net/grabbag/tutorials/sedfaq.txt)ï¼ http://sed.sf.net/grabbag/ã
sed ç宿´ææ¡£æ¯ä½ä¸ºTexinfoæåç»´æ¤çã妿infoåsedç¨åºæ£ç¡®çå®è£ï¼ å¯ä»¥æ§è¡
info sed
å½ä»¤æ¥è®¿é®å®æ´çæåã
è·
æ¬é¡µé¢ä¸æçç±ä¸æ man æå页计åæä¾ã
ç¿»è¯äººåï¼Means
Lee
ç¿»è¯æ¥æï¼2017-05-15
åå§è½¯ä»¶ï¼sed
䏿 man
æå页计åï¼https://github.com/man-pages-zh/manpages-zh