¡¾×ªÌû¡¿SEDµ¥Ðнű¾¿ìËٲο¼£¨Unix Á÷±à¼Æ÷£© | HANDY ONE-LINERS FOR SED (Unix stre
SEDµ¥Ðнű¾¿ìËٲο¼£¨Unix Á÷±à¼Æ÷£© 2005Äê12ÔÂ29ÈÕÓ¢ÎıêÌ⣺USEFUL ONE-LINE SCRIPTS FOR SED (Unix stream editor)
Ô±êÌ⣺HANDY ONE-LINERS FOR SED (Unix stream editor)
ÕûÀí£ºEric Pement - µçÓÊ£ºpemente[at]northpark[dot]edu °æ±¾5.5
ÒëÕߣºJoe Hong - µçÓÊ£ºhq00e[at]126[dot]com
ÔÚÒÔϵØÖ·¿ÉÕÒµ½±¾ÎĵµµÄ×îУ¨Ó¢ÎÄ£©°æ±¾£º
[url]http://sed.sourceforge.net/sed1line.txt[/url]
[url]http://www.pement.org/sed/sed1line.txt[/url]
ÆäËûÓïÑÔ°æ±¾£º
ÖÐÎÄ - [url]http://sed.sourceforge.net/sed1line_zh-CN.html[/url]
½Ý¿ËÓï - [url]http://sed.sourceforge.net/sed1line_cz.html[/url]
ºÉÓï - [url]http://sed.sourceforge.net/sed1line_nl.html[/url]
·¨Óï - [url]http://sed.sourceforge.net/sed1line_fr.html[/url]
µÂÓï - [url]http://sed.sourceforge.net/sed1line_de.html[/url]
ÆÏÓï - [url]http://sed.sourceforge.net/sed1line_pt-BR.html[/url]
Îı¾¼ä¸ô£º
--------
# ÔÚÿһÐкóÃæÔö¼ÓÒ»¿ÕÐÐ
sed G
# ½«ÔÀ´µÄËùÓпÕÐÐɾ³ý²¢ÔÚÿһÐкóÃæÔö¼ÓÒ»¿ÕÐС£
# ÕâÑùÔÚÊä³öµÄÎı¾ÖÐÿһÐкóÃæ½«ÓÐÇÒÖ»ÓÐÒ»¿ÕÐС£
sed '/^$/d;G'
# ÔÚÿһÐкóÃæÔö¼ÓÁ½ÐпÕÐÐ
sed 'G;G'
# ½«µÚÒ»¸ö½Å±¾Ëù²úÉúµÄËùÓпÕÐÐɾ³ý£¨¼´É¾³ýËùÓÐżÊýÐУ©
sed 'n;d'
# ÔÚÆ¥ÅäʽÑù¡°regex¡±µÄÐÐ֮ǰ²åÈëÒ»¿ÕÐÐ
sed '/regex/{x;p;x;}'
# ÔÚÆ¥ÅäʽÑù¡°regex¡±µÄÐÐÖ®ºó²åÈëÒ»¿ÕÐÐ
sed '/regex/G'
# ÔÚÆ¥ÅäʽÑù¡°regex¡±µÄÐÐ֮ǰºÍÖ®ºó¸÷²åÈëÒ»¿ÕÐÐ
sed '/regex/{x;p;x;G;}'
±àºÅ£º
--------
# ΪÎļþÖеÄÿһÐнøÐбàºÅ£¨¼òµ¥µÄ×ó¶ÔÆë·½Ê½£©¡£ÕâÀïʹÓÃÁË¡°ÖƱí·û¡±
# £¨tab£¬¼û±¾ÎÄĩβ¹ØÓÚ'\t'µÄÓ÷¨µÄÃèÊö£©¶ø²»ÊǿոñÀ´¶ÔÆë±ßÔµ¡£
sed = filename | sed 'N;s/\n/\t/'
# ¶ÔÎļþÖеÄËùÓÐÐбàºÅ£¨ÐкÅÔÚ×ó£¬ÎÄ×ÖÓÒ¶Ë¶ÔÆë£©¡£
sed = filename | sed 'N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /'
# ¶ÔÎļþÖеÄËùÓÐÐбàºÅ£¬µ«Ö»ÏÔʾ·Ç¿Õ°×ÐеÄÐкš£
sed '/./=' filename | sed '/./N; s/\n/ /'
# ¼ÆËãÐÐÊý £¨Ä£Äâ "wc -l"£©
sed -n '$='
Îı¾×ª»»ºÍÌæ´ú£º
--------
# Unix»·¾³£º×ª»»DOSµÄÐÂÐзû£¨CR/LF£©ÎªUnix¸ñʽ¡£
sed 's/.$//' # ¼ÙÉèËùÓÐÐÐÒÔCR/LF½áÊø
sed 's/^M$//' # ÔÚbash/tcshÖУ¬½«°´Ctrl-M¸ÄΪ°´Ctrl-V
sed 's/\x0D$//' # ssed¡¢gsed 3.02.80£¬¼°¸ü¸ß°æ±¾
# Unix»·¾³£º×ª»»UnixµÄÐÂÐзû£¨LF£©ÎªDOS¸ñʽ¡£
sed "s/$/`echo -e \\\r`/" # ÔÚkshÏÂËùʹÓõÄÃüÁî
sed 's/$'"/`echo \\\r`/" # ÔÚbashÏÂËùʹÓõÄÃüÁî
sed "s/$/`echo \\\r`/" # ÔÚzshÏÂËùʹÓõÄÃüÁî
sed 's/$/\r/' # gsed 3.02.80 ¼°¸ü¸ß°æ±¾
# DOS»·¾³£º×ª»»UnixÐÂÐзû£¨LF£©ÎªDOS¸ñʽ¡£
sed "s/$//" # ·½·¨ 1
sed -n p # ·½·¨ 2
# DOS»·¾³£º×ª»»DOSÐÂÐзû£¨CR/LF£©ÎªUnix¸ñʽ¡£
# ÏÂÃæµÄ½Å±¾Ö»¶ÔUnxUtils sed 4.0.7 ¼°¸ü¸ß°æ±¾ÓÐЧ¡£ÒªÊ¶±ðUnxUtils°æ±¾µÄ
# sed¿ÉÒÔͨ¹ýÆäÌØÓеġ°--text¡±Ñ¡Ïî¡£Äã¿ÉÒÔʹÓðïÖúÑ¡Ï¡°--help¡±£©¿´
# ÆäÖÐÓÐÎÞÒ»¸ö¡°--text¡±ÏîÒÔ´ËÀ´ÅжÏËùʹÓõÄÊÇ·ñÊÇUnxUtils°æ±¾¡£ÆäËüDOS
# °æ±¾µÄµÄsedÔòÎÞ·¨½øÐÐÕâһת»»¡£µ«¿ÉÒÔÓá°tr¡±À´ÊµÏÖÕâһת»»¡£
sed "s/\r//" infile >outfile # UnxUtils sed v4.0.7 »ò¸ü¸ß°æ±¾
tr -d \r <infile >outfile # GNU tr 1.22 »ò¸ü¸ß°æ±¾
# ½«Ã¿Ò»ÐÐǰµ¼µÄ¡°¿Õ°××Ö·û¡±£¨¿Õ¸ñ£¬ÖƱí·û£©É¾³ý
# ʹ֮×ó¶ÔÆë
sed 's/^[ \t]*//' # ¼û±¾ÎÄĩβ¹ØÓÚ'\t'Ó÷¨µÄÃèÊö
# ½«Ã¿Ò»ÐÐÍÏβµÄ¡°¿Õ°××Ö·û¡±£¨¿Õ¸ñ£¬ÖƱí·û£©É¾³ý
sed 's/[ \t]*$//' # ¼û±¾ÎÄĩβ¹ØÓÚ'\t'Ó÷¨µÄÃèÊö
# ½«Ã¿Ò»ÐÐÖеÄǰµ¼ºÍÍÏβµÄ¿Õ°××Ö·ûɾ³ý
sed 's/^[ \t]*//;s/[ \t]*$//'
# ÔÚÿһÐпªÍ·´¦²åÈë5¸ö¿Õ¸ñ£¨Ê¹È«ÎÄÏòÓÒÒÆ¶¯5¸ö×Ö·ûµÄλÖã©
sed 's/^/ /'
# ÒÔ79¸ö×Ö·ûΪ¿í¶È£¬½«ËùÓÐÎı¾ÓÒ¶ÔÆë
sed -e :a -e 's/^.\{1,78\}$/ &/;ta' # 78¸ö×Ö·ûÍâ¼Ó×îºóµÄÒ»¸ö¿Õ¸ñ
# ÒÔ79¸ö×Ö·ûΪ¿í¶È£¬Ê¹ËùÓÐÎı¾¾ÓÖС£ÔÚ·½·¨1ÖУ¬ÎªÁËÈÃÎı¾¾ÓÖÐÿһÐеÄǰ
# Í·ºÍºóÍ·¶¼Ìî³äÁ˿ոñ¡£ ÔÚ·½·¨2ÖУ¬ÔÚ¾ÓÖÐÎı¾µÄ¹ý³ÌÖÐÖ»ÔÚÎı¾µÄÇ°ÃæÌî³ä
# ¿Õ¸ñ£¬²¢ÇÒ×îÖÕÕâЩ¿Õ¸ñ½«ÓÐÒ»°ë»á±»É¾³ý¡£´ËÍâÿһÐеĺóÍ·²¢Î´Ìî³ä¿Õ¸ñ¡£
sed -e :a -e 's/^.\{1,77\}$/ & /;ta' # ·½·¨1
sed -e :a -e 's/^.\{1,77\}$/ &/;ta' -e 's/\( *\)\1/\1/' # ·½·¨2
# ÔÚÿһÐÐÖвéÕÒ×Ö´®¡°foo¡±£¬²¢½«ÕÒµ½µÄ¡°foo¡±Ì滻Ϊ¡°bar¡±
sed 's/foo/bar/' # Ö»Ìæ»»Ã¿Ò»ÐÐÖеĵÚÒ»¸ö¡°foo¡±×Ö´®
sed 's/foo/bar/4' # Ö»Ìæ»»Ã¿Ò»ÐÐÖеĵÚËĸö¡°foo¡±×Ö´®
sed 's/foo/bar/g' # ½«Ã¿Ò»ÐÐÖеÄËùÓС°foo¡±¶¼»»³É¡°bar¡±
sed 's/\(.*\)foo\(.*foo\)/\1bar\2/' # Ìæ»»µ¹ÊýµÚ¶þ¸ö¡°foo¡±
sed 's/\(.*\)foo/\1bar/' # Ìæ»»×îºóÒ»¸ö¡°foo¡±
# Ö»ÔÚÐÐÖгöÏÖ×Ö´®¡°baz¡±µÄÇé¿öϽ«¡°foo¡±Ìæ»»³É¡°bar¡±
sed '/baz/s/foo/bar/g'
# ½«¡°foo¡±Ìæ»»³É¡°bar¡±£¬²¢ÇÒÖ»ÔÚÐÐÖÐδ³öÏÖ×Ö´®¡°baz¡±µÄÇé¿öÏÂÌæ»»
sed '/baz/!s/foo/bar/g'
# ²»¹ÜÊÇ¡°scarlet¡±¡°ruby¡±»¹ÊÇ¡°puce¡±£¬Ò»ÂÉ»»³É¡°red¡±
sed 's/scarlet/red/g;s/ruby/red/g;s/puce/red/g' #¶Ô¶àÊýµÄsed¶¼ÓÐЧ
gsed 's/scarlet\|ruby\|puce/red/g' # Ö»¶ÔGNU sedÓÐЧ
# µ¹ÖÃËùÓÐÐУ¬µÚÒ»ÐгÉΪ×îºóÒ»ÐУ¬ÒÀ´ÎÀàÍÆ£¨Ä£Äâ¡°tac¡±£©¡£
# ÓÉÓÚijЩÔÒò£¬Ê¹ÓÃÏÂÃæÃüÁîʱHHsed v1.5»á½«ÎļþÖеĿÕÐÐɾ³ý
sed '1!G;h;$!d' # ·½·¨1
sed -n '1!G;h;$p' # ·½·¨2
# ½«ÐÐÖеÄ×Ö·ûÄæÐòÅÅÁУ¬µÚÒ»¸ö×Ö³ÉΪ×îºóÒ»×Ö£¬¡¡£¨Ä£Äâ¡°rev¡±£©
sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'
# ½«Ã¿Á½ÐÐÁ¬½Ó³ÉÒ»ÐУ¨ÀàËÆ¡°paste¡±£©
sed '$!N;s/\n/ /'
# Èç¹ûµ±Ç°ÐÐÒÔ·´Ð±¸Ü¡°\¡±½áÊø£¬Ôò½«ÏÂÒ»Ðв¢µ½µ±Ç°ÐÐĩβ
# ²¢È¥µôÔÀ´ÐÐβµÄ·´Ð±¸Ü
sed -e :a -e '/\\$/N; s/\\\n//; ta'
# Èç¹ûµ±Ç°ÐÐÒԵȺſªÍ·£¬½«µ±Ç°Ðв¢µ½ÉÏÒ»ÐÐĩβ
# ²¢ÒÔµ¥¸ö¿Õ¸ñ´úÌæÔÀ´ÐÐÍ·µÄ¡°=¡±
sed -e :a -e '$!N;s/\n=/ /;ta' -e 'P;D'
# ΪÊý×Ö×Ö´®Ôö¼Ó¶ººÅ·Ö¸ô·ûºÅ£¬½«¡°1234567¡±¸ÄΪ¡°1,234,567¡±
gsed ':a;s/\B[0-9]\{3\}\>/,&/;ta' # GNU sed
sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta' # ÆäËûsed
# Ϊ´øÓÐСÊýµãºÍ¸ººÅµÄÊýÖµÔö¼Ó¶ººÅ·Ö¸ô·û£¨GNU sed£©
gsed -r ':a;s/(^|[^0-9.])([0-9]+)([0-9]{3})/\1\2,\3/g;ta'
# ÔÚÿ5ÐкóÔö¼ÓÒ»¿Õ°×ÐÐ £¨ÔÚµÚ5£¬10£¬15£¬20£¬µÈÐкóÔö¼ÓÒ»¿Õ°×ÐУ©
gsed '0~5G' # Ö»¶ÔGNU sedÓÐЧ
sed 'n;n;n;n;G;' # ÆäËûsed
Ñ¡ÔñÐÔµØÏÔÊ¾ÌØ¶¨ÐУº
--------
# ÏÔʾÎļþÖеÄǰ10ÐÐ £¨Ä£Äâ¡°head¡±µÄÐÐΪ£©
sed 10q
# ÏÔʾÎļþÖеĵÚÒ»ÐÐ £¨Ä£Äâ¡°head -1¡±ÃüÁ
sed q
# ÏÔʾÎļþÖеÄ×îºó10ÐÐ £¨Ä£Äâ¡°tail¡±£©
sed -e :a -e '$q;N;11,$D;ba'
# ÏÔʾÎļþÖеÄ×îºó2ÐУ¨Ä£Äâ¡°tail -2¡±ÃüÁ
sed '$!N;$!D'
# ÏÔʾÎļþÖеÄ×îºóÒ»ÐУ¨Ä£Äâ¡°tail -1¡±£©
sed '$!d' # ·½·¨1
sed -n '$p' # ·½·¨2
# ÏÔʾÎļþÖеĵ¹ÊýµÚ¶þÐÐ
sed -e '$!{h;d;}' -e x # µ±ÎļþÖÐÖ»ÓÐÒ»ÐÐʱ£¬ÊäÈë¿ÕÐÐ
sed -e '1{$q;}' -e '$!{h;d;}' -e x # µ±ÎļþÖÐÖ»ÓÐÒ»ÐÐʱ£¬ÏÔʾ¸ÃÐÐ
sed -e '1{$d;}' -e '$!{h;d;}' -e x # µ±ÎļþÖÐÖ»ÓÐÒ»ÐÐʱ£¬²»Êä³ö
# Ö»ÏÔʾƥÅäÕýÔò±í´ïʽµÄÐУ¨Ä£Äâ¡°grep¡±£©
sed -n '/regexp/p' # ·½·¨1
sed '/regexp/!d' # ·½·¨2
# Ö»ÏÔʾ¡°²»¡±Æ¥ÅäÕýÔò±í´ïʽµÄÐУ¨Ä£Äâ¡°grep -v¡±£©
sed -n '/regexp/!p' # ·½·¨1£¬ÓëÇ°ÃæµÄÃüÁîÏà¶ÔÓ¦
sed '/regexp/d' # ·½·¨2£¬ÀàËÆµÄÓï·¨
# ²éÕÒ¡°regexp¡±²¢½«Æ¥ÅäÐеÄÉÏÒ»ÐÐÏÔʾ³öÀ´£¬µ«²¢²»ÏÔʾƥÅäÐÐ
sed -n '/regexp/{g;1!p;};h'
# ²éÕÒ¡°regexp¡±²¢½«Æ¥ÅäÐеÄÏÂÒ»ÐÐÏÔʾ³öÀ´£¬µ«²¢²»ÏÔʾƥÅäÐÐ
sed -n '/regexp/{n;p;}'
# ÏÔʾ°üº¬¡°regexp¡±µÄÐм°ÆäǰºóÐУ¬²¢ÔÚµÚÒ»ÐÐ֮ǰ¼ÓÉÏ¡°regexp¡±Ëù
# ÔÚÐеÄÐкŠ£¨ÀàËÆ¡°grep -A1 -B1¡±£©
sed -n -e '/regexp/{=;x;1!p;g;$!N;p;D;}' -e h
# ÏÔʾ°üº¬¡°AAA¡±¡¢¡°BBB¡±»ò¡°CCC¡±µÄÐУ¨ÈÎÒâ´ÎÐò£©
sed '/AAA/!d; /BBB/!d; /CCC/!d' # ×Ö´®µÄ´ÎÐò²»Ó°Ïì½á¹û
# ÏÔʾ°üº¬¡°AAA¡±¡¢¡°BBB¡±ºÍ¡°CCC¡±µÄÐУ¨¹Ì¶¨´ÎÐò£©
sed '/AAA.*BBB.*CCC/!d'
# ÏÔʾ°üº¬¡°AAA¡±¡°BBB¡±»ò¡°CCC¡±µÄÐÐ £¨Ä£Äâ¡°egrep¡±£©
sed -e '/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d # ¶àÊýsed
gsed '/AAA\|BBB\|CCC/!d' # ¶ÔGNU sedÓÐЧ
# ÏÔʾ°üº¬¡°AAA¡±µÄ¶ÎÂä £¨¶ÎÂä¼äÒÔ¿ÕÐзָô£©
# HHsed v1.5 ±ØÐëÔÚ¡°x;¡±ºó¼ÓÈë¡°G;¡±£¬½ÓÏÂÀ´µÄ3¸ö½Å±¾¶¼ÊÇÕâÑù
sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;'
# ÏÔʾ°üº¬¡°AAA¡±¡°BBB¡±ºÍ¡°CCC¡±Èý¸ö×Ö´®µÄ¶ÎÂä £¨ÈÎÒâ´ÎÐò£©
sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;/BBB/!d;/CCC/!d'
# ÏÔʾ°üº¬¡°AAA¡±¡¢¡°BBB¡±¡¢¡°CCC¡±ÈýÕßÖÐÈÎÒ»×Ö´®µÄ¶ÎÂä £¨ÈÎÒâ´ÎÐò£©
sed -e '/./{H;$!d;}' -e 'x;/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d
gsed '/./{H;$!d;};x;/AAA\|BBB\|CCC/b;d' # Ö»¶ÔGNU sedÓÐЧ
# ÏÔʾ°üº¬65¸ö»òÒÔÉÏ×Ö·ûµÄÐÐ
sed -n '/^.\{65\}/p'
# ÏÔʾ°üº¬65¸öÒÔÏÂ×Ö·ûµÄÐÐ
sed -n '/^.\{65\}/!p' # ·½·¨1£¬ÓëÉÏÃæµÄ½Å±¾Ïà¶ÔÓ¦
sed '/^.\{65\}/d' # ·½·¨2£¬¸ü¼ò±ãÒ»µãµÄ·½·¨
# ÏÔʾ²¿·ÖÎı¾¨D¨D´Ó°üº¬ÕýÔò±í´ïʽµÄÐпªÊ¼µ½×îºóÒ»ÐнáÊø
sed -n '/regexp/,$p'
# ÏÔʾ²¿·ÖÎı¾¨D¨DÖ¸¶¨Ðкŷ¶Î§£¨´ÓµÚ8ÖÁµÚ12ÐУ¬º¬8ºÍ12ÐУ©
sed -n '8,12p' # ·½·¨1
sed '8,12!d' # ·½·¨2
# ÏÔʾµÚ52ÐÐ
sed -n '52p' # ·½·¨1
sed '52!d' # ·½·¨2
sed '52q;d' # ·½·¨3, ´¦Àí´óÎļþʱ¸üÓÐЧÂÊ
# ´ÓµÚ3ÐпªÊ¼£¬Ã¿7ÐÐÏÔʾһ´Î
gsed -n '3~7p' # Ö»¶ÔGNU sedÓÐЧ
sed -n '3,${p;n;n;n;n;n;n;}' # ÆäËûsed
# ÏÔʾÁ½¸öÕýÔò±í´ïʽ֮¼äµÄÎı¾£¨°üº¬£©
sed -n '/Iowa/,/Montana/p' # Çø·Ö´óСд·½Ê½
Ñ¡ÔñÐÔµØÉ¾³ýÌØ¶¨ÐУº
--------
# ÏÔʾͨƪÎĵµ£¬³ýÁËÁ½¸öÕýÔò±í´ïʽ֮¼äµÄÄÚÈÝ
sed '/Iowa/,/Montana/d'
# ɾ³ýÎļþÖÐÏàÁÚµÄÖØ¸´ÐУ¨Ä£Äâ¡°uniq¡±£©
# Ö»±£ÁôÖØ¸´ÐÐÖеĵÚÒ»ÐУ¬ÆäËûÐÐɾ³ý
sed '$!N; /^\(.*\)\n\1$/!P; D'
# ɾ³ýÎļþÖеÄÖØ¸´ÐУ¬²»¹ÜÓÐÎÞÏàÁÚ¡£×¢Òâhold spaceËùÄÜÖ§³ÖµÄ»º´æ
# ´óС£¬»òÕßʹÓÃGNU sed¡£
sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P'
# ɾ³ý³ýÖØ¸´ÐÐÍâµÄËùÓÐÐУ¨Ä£Äâ¡°uniq -d¡±£©
sed '$!N; s/^\(.*\)\n\1$/\1/; t; D'
# ɾ³ýÎļþÖпªÍ·µÄ10ÐÐ
sed '1,10d'
# ɾ³ýÎļþÖеÄ×îºóÒ»ÐÐ
sed '$d'
# ɾ³ýÎļþÖеÄ×îºóÁ½ÐÐ
sed 'N;$!P;$!D;$d'
# ɾ³ýÎļþÖеÄ×îºó10ÐÐ
sed -e :a -e '$d;N;2,10ba' -e 'P;D' # ·½·¨1
sed -n -e :a -e '1,10!{P;N;D;};N;ba' # ·½·¨2
# ɾ³ý8µÄ±¶ÊýÐÐ
gsed '0~8d' # Ö»¶ÔGNU sedÓÐЧ
sed 'n;n;n;n;n;n;n;d;' # ÆäËûsed
# ɾ³ýÆ¥ÅäʽÑùµÄÐÐ
sed '/pattern/d' # ɾ³ýº¬patternµÄÐС£µ±È»pattern
# ¿ÉÒÔ»»³ÉÈκÎÓÐЧµÄÕýÔò±í´ïʽ
# ɾ³ýÎļþÖеÄËùÓпÕÐУ¨Óë¡°grep '.' ¡±Ð§¹ûÏàͬ£©
sed '/^$/d' # ·½·¨1
sed '/./!d' # ·½·¨2
# Ö»±£Áô¶à¸öÏàÁÚ¿ÕÐеĵÚÒ»ÐС£²¢ÇÒɾ³ýÎļþ¶¥²¿ºÍβ²¿µÄ¿ÕÐС£
# £¨Ä£Äâ¡°cat -s¡±£©
sed '/./,/^$/!d' #·½·¨1£¬É¾³ýÎļþ¶¥²¿µÄ¿ÕÐУ¬ÔÊÐíβ²¿±£ÁôÒ»¿ÕÐÐ
sed '/^$/N;/\n$/D' #·½·¨2£¬ÔÊÐí¶¥²¿±£ÁôÒ»¿ÕÐУ¬Î²²¿²»Áô¿ÕÐÐ
# Ö»±£Áô¶à¸öÏàÁÚ¿ÕÐеÄǰÁ½ÐС£
sed '/^$/N;/\n$/N;//D'
# ɾ³ýÎļþ¶¥²¿µÄËùÓпÕÐÐ
sed '/./,$!d'
# ɾ³ýÎļþβ²¿µÄËùÓпÕÐÐ
sed -e :a -e '/^\n*$/{$d;N;ba' -e '}' # ¶ÔËùÓÐsedÓÐЧ
sed -e :a -e '/^\n*$/N;/\n$/ba' # ͬÉÏ£¬µ«Ö»¶Ô gsed 3.02.*ÓÐЧ
# ɾ³ýÿ¸ö¶ÎÂäµÄ×îºóÒ»ÐÐ
sed -n '/^$/{p;h;};/./{x;/./p;}'
ÌØÊâÓ¦Óãº
--------
# ÒÆ³ýÊÖ²áÒ³£¨man page£©ÖеÄnroff±ê¼Ç¡£ÔÚUnix System V»òbash shellÏÂʹ
# ÓÃ'echo'ÃüÁîʱ¿ÉÄÜÐèÒª¼ÓÉÏ -e Ñ¡Ïî¡£
sed "s/.`echo \\\b`//g" # Íâ²ãµÄË«À¨ºÅÊDZØÐëµÄ£¨Unix»·¾³£©
sed 's/.^H//g' # ÔÚbash»òtcshÖÐ, °´ Ctrl-V ÔÙ°´ Ctrl-H
sed 's/.\x08//g' # sed 1.5£¬GNU sed£¬ssedËùʹÓõÄÊ®Áù½øÖƵıíʾ·½·¨
# ÌáÈ¡ÐÂÎÅ×é»ò e-mail µÄÓʼþÍ·
sed '/^$/q' # ɾ³ýµÚÒ»ÐпÕÐкóµÄËùÓÐÄÚÈÝ
# ÌáÈ¡ÐÂÎÅ×é»ò e-mail µÄÕýÎIJ¿·Ö
sed '1,/^$/d' # ɾ³ýµÚÒ»ÐпÕÐÐ֮ǰµÄËùÓÐÄÚÈÝ
# ´ÓÓʼþÍ·ÌáÈ¡¡°Subject¡±£¨±êÌâÀ¸×ֶΣ©£¬²¢ÒƳý¿ªÍ·µÄ¡°Subject:¡±×ÖÑù
sed '/^Subject: */!d; s///;q'
# ´ÓÓʼþÍ·»ñµÃ»Ø¸´µØÖ·
sed '/^Reply-To:/q; /^From:/h; /./d;g;q'
# »ñÈ¡ÓʼþµØÖ·¡£ÔÚÉÏÒ»¸ö½Å±¾Ëù²úÉúµÄÄÇÒ»ÐÐÓʼþÍ·µÄ»ù´¡ÉϽøÒ»²½µÄ½«·ÇµçÓÊ
# µØÖ·µÄ²¿·ÖÌê³ý¡££¨¼ûÉÏÒ»½Å±¾£©
sed 's/ *(.*)//; s/>.*//; s/.*[:<] *//'
# ÔÚÿһÐпªÍ·¼ÓÉÏÒ»¸ö¼âÀ¨ºÅºÍ¿Õ¸ñ£¨ÒýÓÃÐÅÏ¢£©
sed 's/^/> /'
# ½«Ã¿Ò»ÐпªÍ·´¦µÄ¼âÀ¨ºÅºÍ¿Õ¸ñɾ³ý£¨½â³ýÒýÓã©
sed 's/^> //'
# ÒÆ³ý´ó²¿·ÖµÄHTML±êÇ©£¨°üÀ¨¿çÐбêÇ©£©
sed -e :a -e 's/<[^>]*>//g;/</N;//ba'
# ½«·Ö³É¶à¾íµÄuuencodeÎļþ½âÂë¡£ÒÆ³ýÎļþÍ·ÐÅÏ¢£¬Ö»±£Áôuuencode±àÂ벿·Ö¡£
# Îļþ±ØÐëÒÔÌØ¶¨Ë³Ðò´«¸øsed¡£ÏÂÃæµÚÒ»ÖÖ°æ±¾µÄ½Å±¾¿ÉÒÔÖ±½ÓÔÚÃüÁîÐÐÏÂÊäÈ룻
# µÚ¶þÖÖ°æ±¾Ôò¿ÉÒÔ·ÅÈëÒ»¸ö´øÖ´ÐÐȨÏÞµÄshell½Å±¾ÖС££¨ÓÉRahul DhesiµÄÒ»
# ¸ö½Å±¾Ð޸ĶøÀ´¡££©
sed '/^end/,/^begin/d' file1 file2 ... fileX | uudecode # vers. 1
sed '/^end/,/^begin/d' "$@" | uudecode # vers. 2
# ½«ÎļþÖеĶÎÂäÒÔ×Öĸ˳ÐòÅÅÐò¡£¶ÎÂä¼äÒÔ£¨Ò»Ðлò¶àÐУ©¿ÕÐзָô¡£GNU sedʹÓÃ
# ×ÖÔª¡°\v¡±À´±íʾ´¹Ö±ÖƱí·û£¬ÕâÀïÓÃËüÀ´×÷Ϊ»»ÐзûµÄռλ·û¨D¨Dµ±È»ÄãÒ²¿ÉÒÔ
# ÓÃÆäËûδÔÚÎļþÖÐʹÓõÄ×Ö·ûÀ´´úÌæËü¡£
sed '/./{H;d;};x;s/\n/={NL}=/g' file | sort | sed '1s/={NL}=//;s/={NL}=/\n/g'
gsed '/./{H;d};x;y/\n/\v/' file | sort | sed '1s/\v//;y/\v/\n/'
# ·Ö±ðѹËõÿ¸ö.TXTÎļþ£¬Ñ¹Ëõºóɾ³ýÔÀ´µÄÎļþ²¢½«Ñ¹ËõºóµÄ.ZIPÎļþ
# ÃüÃûΪÓëÔÀ´ÏàͬµÄÃû×Ö£¨Ö»ÊÇÀ©Õ¹Ãû²»Í¬£©¡££¨DOS»·¾³£º¡°dir /b¡±
# ÏÔʾ²»´øÂ·¾¶µÄÎļþÃû£©¡£
echo @echo off >zipup.bat
dir /b *.txt | sed "s/^\(.*\)\.TXT/pkzip -mo \1 \1.TXT/" >>zipup.bat
ʹÓÃSED£ºSed½ÓÊÜÒ»¸ö»ò¶à¸ö±à¼ÃüÁ²¢ÇÒÿ¶ÁÈëÒ»Ðкó¾ÍÒÀ´ÎÓ¦ÓÃÕâЩÃüÁî¡£
µ±¶ÁÈëµÚÒ»ÐÐÊäÈëºó£¬sed¶ÔÆäÓ¦ÓÃËùÓеÄÃüÁȻºó½«½á¹ûÊä³ö¡£½Ó×ÅÔÙ¶ÁÈëµÚ¶þ
ÐÐÊäÈ룬¶ÔÆäÓ¦ÓÃËùÓеÄÃüÁî¡¡²¢Öظ´Õâ¸ö¹ý³Ì¡£ÉÏÒ»¸öÀý×ÓÖÐsedÓɱê×¼ÊäÈëÉè
±¸£¨¼´ÃüÁî½âÊÍÆ÷£¬Í¨³£ÊÇÒԹܵÀÊäÈëµÄÐÎʽ£©»ñµÃÊäÈë¡£ÔÚÃüÁîÐиø³öÒ»¸ö»ò¶à
¸öÎļþÃû×÷Ϊ²ÎÊýʱ£¬ÕâЩÎļþÈ¡´ú±ê×¼ÊäÈëÉ豸³ÉΪsedµÄÊäÈë¡£sedµÄÊä³ö½«±»
Ë͵½±ê×¼Êä³ö£¨ÏÔʾÆ÷£©¡£Òò´Ë£º
cat filename | sed '10q' # ʹÓùܵÀÊäÈë
sed '10q' filename # ͬÑùЧ¹û£¬µ«²»Ê¹ÓùܵÀÊäÈë
sed '10q' filename > newfile # ½«Êä³ö×ªÒÆ£¨Öض¨Ïò£©µ½´ÅÅÌÉÏ
ÒªÁ˽âsedÃüÁîµÄʹÓÃ˵Ã÷£¬°üÀ¨ÈçºÎͨ¹ý½Å±¾Îļþ£¨¶ø·Ç´ÓÃüÁîÐУ©À´Ê¹ÓÃÕâЩÃü
ÁÇë²ÎÔÄ¡¶sed & awk¡·µÚ¶þ°æ£¬×÷ÕßDale DoughertyºÍArnold Robbins
£¨O'Reilly£¬1997£»[url]http://www.ora.com£©£¬¡¶UNIX[/url] Text Processing¡·£¬×÷Õß
Dale DoughertyºÍTim O'Reilly£¨Hayden Books£¬1987£©»òÕßÊÇMike ArstдµÄ½Ì
³Ì¨D¨DѹËõ°üµÄÃû³ÆÊÇ¡°U-SEDIT2.ZIP¡±£¨ÔÚÐí¶àÕ¾µãÉ϶¼Õҵõ½£©¡£Òª·¢¾òsed
µÄDZÁ¦£¬Ôò±ØÐë¶Ô¡°ÕýÔò±í´ïʽ¡±ÓÐ×ã¹»µÄÀí½â¡£ÕýÔò±í´ïʽµÄ×ÊÁÏ¿ÉÒÔ¿´
¡¶Mastering Regular Expressions¡·×÷ÕßJeffrey Friedl£¨O'reilly 1997£©¡£
UnixϵͳËùÌṩµÄÊÖ²áÒ³£¨¡°man¡±£©Ò²»áÓÐËù°ïÖú£¨ÊÔÒ»ÏÂÕâЩÃüÁî
¡°man sed¡±¡¢¡°man regexp¡±£¬»òÕß¿´¡°man ed¡±ÖйØÓÚÕýÔò±í´ïʽµÄ²¿·Ö£©£¬µ«
ÊÖ²áÌṩµÄÐÅÏ¢±È½Ï¡°³éÏ󡱨D¨DÕâÒ²ÊÇËüһֱΪÈËËùÚ¸²¡µÄ¡£²»¹ý£¬Ëü±¾À´¾Í²»
ÊÇÓÃÀ´½Ì³õѧÕßÈçºÎʹÓÃsed»òÕýÔò±í´ïʽµÄ½Ì²Ä£¬¶øÖ»ÊÇΪÄÇЩÊìϤÕâЩ¹¤¾ßµÄÈË
ÌṩµÄһЩÎı¾²Î¿¼¡£
À¨ºÅÓï·¨£ºÇ°ÃæµÄÀý×Ó¶ÔsedÃüÁî»ù±¾É϶¼Ê¹Óõ¥ÒýºÅ£¨'...'£©¶ø·ÇË«ÒýºÅ
£¨"..."£©ÕâÊÇÒòΪsedͨ³£ÊÇÔÚUnixƽ̨ÉÏʹÓᣵ¥ÒýºÅÏ£¬UnixµÄshell£¨ÃüÁî
½âÊÍÆ÷£©²»»á¶ÔÃÀÔª·û£¨$£©ºÍºóÒýºÅ£¨`...`£©½øÐнâÊͺÍÖ´ÐС£¶øÔÚË«ÒýºÅÏÂ
ÃÀÔª·û»á±»Õ¹¿ªÎª±äÁ¿»ò²ÎÊýµÄÖµ£¬ºóÒýºÅÖеÄÃüÁî±»Ö´Ðв¢ÒÔÊä³öµÄ½á¹û´úÌæ
ºóÒýºÅÖеÄÄÚÈÝ¡£¶øÔÚ¡°csh¡±¼°ÆäÑÜÉúµÄshellÖÐʹÓøÐ̾ºÅ£¨!£©Ê±ÐèÒªÔÚÆäǰ
Ãæ¼ÓÉÏתÒåÓõķ´Ð±¸Ü£¨¾ÍÏñÕâÑù£º\!£©ÒÔ±£Ö¤ÉÏÃæËùʹÓõÄÀý×ÓÄÜÕý³£ÔËÐÐ
£¨°üÀ¨Ê¹Óõ¥ÒýºÅµÄÇé¿öÏ£©¡£DOS°æ±¾µÄSedÔòÒ»ÂÉʹÓÃË«ÒýºÅ£¨"..."£©¶ø²»ÊÇ
ÒýºÅÀ´È¦ÆðÃüÁî¡£
'\t'µÄÓ÷¨£ºÎªÁËʹ±¾Îı£³ÖÐÐÎļò½à£¬ÎÒÃÇÔڽű¾ÖÐʹÓÃ'\t'À´±íʾһ¸öÖÆ±í
·û¡£µ«ÊÇÏÖÔڴ󲿷ְ汾µÄsed»¹²»ÄÜʶ±ð'\t'µÄ¼òд·½Ê½£¬Òò´Ëµ±ÔÚÃüÁîÐÐÖÐΪ
½Å±¾ÊäÈëÖÆ±í·ûʱ£¬ÄãÓ¦¸ÃÖ±½Ó°´TAB¼üÀ´ÊäÈëÖÆ±í·û¶ø²»ÊÇÊäÈë'\t'¡£ÏÂÁеŤ
¾ßÈí¼þ¶¼Ö§³Ö'\t'×öΪһ¸öÕýÔò±í´ïʽµÄ×ÖÔªÀ´±íÊ¾ÖÆ±í·û£ºawk¡¢perl¡¢HHsed¡¢
sedmodÒÔ¼°GNU sed v3.02.80¡£
²»Í¬°æ±¾µÄSED£º²»Í¬µÄ°æ±¾¼äµÄsed»áÓÐЩ²»Í¬Ö®´¦£¬¿ÉÒÔÏëÏóËüÃÇÖ®¼äÔÚÓï·¨ÉÏ
»áÓвîÒì¡£¾ßÌå¶øÑÔ£¬ËüÃÇÖд󲿷ֲ»Ö§³ÖÔÚ±à¼ÃüÁîÖмäʹÓñêÇ©£¨:name£©»ò·Ö
Ö§ÃüÁb,t£©£¬³ý·ÇÊÇ·ÅÔÚÄÇЩµÄĩβ¡£ÕâÆªÎĵµÖÐÎÒÃǾ¡Á¿Ñ¡ÓÃÁË¿ÉÒÆÖ²ÐԽϸß
µÄÓï·¨£¬ÒÔʹ´ó¶àÊý°æ±¾µÄsedµÄÓû§¶¼ÄÜʹÓÃÕâЩ½Å±¾¡£²»¹ýGNU°æ±¾µÄsedÔÊÐíʹ
Óøü¼ò½àµÄÓï·¨¡£ÏëÏñһϵ±¶ÁÕß¿´µ½Ò»¸öºÜ³¤µÄÃüÁîʱµÄÐÄÇ飺
sed -e '/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d
ºÃÏûÏ¢ÊÇGNU sedÄÜÈÃÃüÁî¸ü½ô´Õ£º
sed '/AAA/b;/BBB/b;/CCC/b;d' # ÉõÖÁ¿ÉÒÔд³É
sed '/AAA\|BBB\|CCC/b;d'
´ËÍ⣬Çë×¢ÒâËäÈ»Ðí¶à°æ±¾µÄsed½ÓÊÜÏó¡°/one/ s/RE1/RE2/¡±ÕâÖÖÔÚ's'ǰ´øÓпÕ
¸ñµÄÃüÁµ«ÕâЩ°æ±¾ÖÐÓÐЩȴ²»½ÓÊÜÕâÑùµÄÃüÁî:¡°/one/! s/RE1/RE2/¡±¡£Õâʱ
Ö»ÐèÒª°ÑÖмäµÄ¿Õ¸ñÈ¥µô¾ÍÐÐÁË¡£
ËÙ¶ÈÓÅ»¯£ºµ±ÓÉÓÚijÖÖÔÒò£¨±ÈÈçÊäÈëÎļþ½Ï´ó¡¢´¦ÀíÆ÷»òÓ²Å̽ÏÂýµÈ£©ÐèÒªÌá¸ß
ÃüÁîÖ´ÐÐËÙ¶Èʱ£¬¿ÉÒÔ¿¼ÂÇÔÚÌæ»»ÃüÁ¡°s/.../.../¡±£©Ç°Ãæ¼ÓÉϵØÖ·±í´ïʽÀ´
Ìá¸ßËÙ¶È¡£¾ÙÀýÀ´Ëµ£º
sed 's/foo/bar/g' filename # ±ê×¼Ìæ»»ÃüÁî
sed '/foo/ s/foo/bar/g' filename # Ëٶȸü¿ì
sed '/foo/ s//bar/g' filename # ¼òдÐÎʽ
µ±Ö»ÐèÒªÏÔʾÎļþµÄÇ°ÃæµÄ²¿·Ö»òÐèҪɾ³ýºóÃæµÄÄÚÈÝʱ£¬¿ÉÒÔÔڽű¾ÖÐʹÓá°q¡±
ÃüÁÍ˳öÃüÁ¡£ÔÚ´¦Àí´óµÄÎļþʱ£¬Õâ»á½ÚÊ¡´óÁ¿Ê±¼ä¡£Òò´Ë£º
sed -n '45,50p' filename # ÏÔʾµÚ45µ½50ÐÐ
sed -n '51q;45,50p' filename # Ò»Ñù£¬µ«¿ìµÃ¶à
Èç¹ûÄãÓÐÆäËûµÄµ¥Ðнű¾ÏëÓë´ó¼Ò·ÖÏí»òÕßÄã·¢ÏÖÁ˱¾ÎĵµÖдíÎóµÄµØ·½£¬Çë·¢µç
×ÓÓʼþ¸ø±¾ÎĵµµÄ×÷Õߣ¨Eric Pement£©¡£ÓʼþÖÐÇë¼ÇµÃÌṩÄãËùʹÓõÄsed°æ±¾¡¢
¸ÃsedËùÔËÐеIJÙ×÷ϵͳ¼°¶ÔÎÊÌâµÄÊʵ±ÃèÊö¡£±¾ÎÄËùÖ¸µÄµ¥Ðнű¾Ö¸ÃüÁîÐеij¤
¶ÈÔÚ65¸ö×Ö·û»ò65¸öÒÔϵÄsed½Å±¾¡²Òë×¢1¡³¡£±¾ÎĵµµÄ¸÷Öֽű¾ÊÇÓÉÒÔÏÂËùÁÐ×÷
ÕßËùд»òÌṩ£º
Al Aab # ½¨Á¢ÁË¡°seders¡±ÓʼþÁбí
Edgar Allen # Ðí¶à·½Ãæ
Yiorgos Adamopoulos # Ðí¶à·½Ãæ
Dale Dougherty # ¡¶sed & awk¡·×÷Õß
Carlos Duarte # ¡¶do it with sed¡·×÷Õß
Eric Pement # ±¾ÎĵµµÄ×÷Õß
Ken Pizzini # GNU sed v3.02 µÄ×÷Õß
S.G. Ravenhall # È¥html±êÇ©½Å±¾
Greg Ubben # ÓÐÖî¶à¹±Ïײ¢ÌṩÁËÐí¶à°ïÖú
-------------------------------------------------------------------------
Òë×¢1£º´ó²¿·ÖÇé¿öÏ£¬sed½Å±¾ÎÞÂ۶೤¶¼ÄÜд³Éµ¥ÐеÄÐÎʽ£¨Í¨¹ý`-e'Ñ¡ÏîºÍ`;'
ºÅ£©¨D¨DÖ»ÒªÃüÁî½âÊÍÆ÷Ö§³Ö£¬ËùÒÔÕâÀï˵µÄµ¥Ðнű¾³ýÁËÄÜд³ÉÒ»Ðл¹¶Ô³¤¶ÈÓÐ
ËùÏÞÖÆ¡£ÒòΪÕâЩµ¥Ðнű¾µÄÒâÒå²»ÔÚÓÚËüÃÇÊÇÒÔµ¥ÐеÄÐÎʽ³öÏÖ¡£¶øÊÇÈÃÓû§ÄÜ
·½±ãµØÔÚÃüÁîÐÐÖÐʹÓÃÕâЩ½ô´ÕµÄ½Å±¾²ÅÊÇÆäÒâÒåËùÔÚ¡£ ÕæÊǺÃÌù, ¶¥
Ò³:
[1]