ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A...

40

Transcript of ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A...

Page 1: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

SED W �

� ³ @ ~ o � Õ � TASPAC � �

Email:[email protected]

* �   × :

85 O 11 ` 25 ^ version:19.27.1�

Page 2: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

ASPAC � i Ì J Î �

ASPAC� Academia Sinica PACkage� Î � ³ @ ~ o � Õ � T n y \8 � �

Ì ¸ à " (Software Tools) C \® Þ � X " (Problem Solving) Ý � i � 3 9 � i

ì X s " � 8 � C Z � K ò y � ³ @ ~ o � Õ � T X b � X b Ñ P 2 � � é � � P

£ ] � � À 8 � C Z � � � 3 � � ì � 8 � C Z � ¸ à J ¿ 1 � ì � K � ¹ ð ã ÿ

C � ã ¸ à �

8 � C Z � ¸ à J ¿ 1 � A ì �

1. 8 � Ý ¸ à J ¿ �

Þ º à Y » FSF� Free Software Foundation� 1991O 6` Ï Þ Ì Ý

GNU General Public License�

2. Z � Ý ¸ à J ¿ �

Z � � | � ã ¾ � C S à � ¬ � ÿ ¢ | % ¿ � t & Ä � W � ð Ý [ ã �

1

Page 3: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

Contents

2

Page 4: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

Chapter 1

Introduction

Sed(Stream EDitor) UNIX � Ù î è º Þ _ ì � ® � � ; Ý _ ì , ¸ à

ï P m à # _ ì £ ] � ¸ à ï � ¿ à sed X è º 20 9 Ë � ! Ý Ð ó ¢ ó , à ) 1

¸ Æ � W � ! Ý _ ì � ® � h ² , ã y sed K | � � � _ ì Z � , Æ Í ù Î � _

ì (line editor)�

× � sed t ð à 3 _ ì £ ° m � � \ ¥ « Ø ° _ ì � ® Ý Z � î , » A Þ

Z � � Ý Ø Í C � � ð W ¨ × Í C � � � � 9 ° 8 ´ y × � UNIX _ ì (ø � P

Ý , A vi� emacs)à W � Ý ] P Ñ ; Z � , sed à R ¼ ´ 6 æ � ì « ¿ ; Þ 5 ½ +

Û ¢ ` ¸ à sed� £ � � | � ÿ sed� C sed A ¢ � ® �

1.1 ¢ ` ¸ à sed

3 Ñ ; Z � ` , A � � \ 2 ¥ « Ø ° _ ì � ® , J � à sed � � × g Æ � 9 ° _

ì � ® � » A � ¸ received j / 1000 � é � * � / Ý s * ß ò ( "Tom" ; W

"John" , h ` © � 3 ú � � î Æ � × � � Ý sed ú � µ � . j / X b Ý "Tom"

C � � ð W "John"�

� ï , Z � m � & 9 � ! _ ì � ® ` , J sed × g � Æ � £ ° � ! Ý _

ì � ® � » A sed � × g Æ � � Þ Z � � X b è ç � À t � � ð C � � ¬ Þ ¸ à ï

í á Ý Z C x � 3 Z � Ý Ï 0 � � � � ! Ý _ ì � ® �

1µ Î ¡ « Þ º è Õ Ý sed script�

3

Page 5: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

1.2 ¢ � � ÿ sed

× � Ý UNIX � Ù , Í � Ç ! b sed� � ! Ý UNIX � Ù X ! Ý sed Ì Í ù �

¼ 8 ! � u \ ï X ¸ à Ý UNIX � Ù î Î ! b sed , J � D Ä anonymous ftp Õ

ì � 2 ] � ã ÿ :

phi.sinica.edu.tw:/pub/GNU/gnu

gete.sinica.edu.tw:/unix/gnu

ftp.edu.tw:/UNIX/gnu

ftp.csie.nctu.edu.tw:/pub/Unix/GNU

ftp.fcu.edu.tw: /pub3/UNIX/gnu

axp350.ncu.edu.tw:/Packages/gnu

leica.ccu.edu.tw :/pub2/gnu

mail.ncku.edu.tw :/pub/unix/gnu

bbs.ccit.edu.tw :/pub1/UNIX/gnu

prep.ai.mit.edu.tw:/pub/gnu

1.3 sed � � £ ° _ ì � ®

sed � À t (delete)� ; � (change)� x � (append)� æ á (insert)� ) ¿ � ø

ð Z � � Ý £ ] � , T \ á Í ¸ j Ý £ ] Õ Z � � , ô � � ð (substuite)¸ Æ Í �

Ý C � � T » ð (tranfer)Í � Ý C Ò � � � » A Þ Z � � Ý = � è ç � À W × � �

"local" C � � ð W "remote" � "t" C Ò » ð W "T"� Þ Ï 10 � £ ] � Ï 11 £

] ) ¿ � �

4

Page 6: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

1.4 sed A ¢ � ®

A ! Í ¸ UNIX ú � , sed ã ý ã í á \ á _ ì Z � ¬ ã ý ã í � X � � � �

� ì % � î sed Þ £ ] � "Unix" � ð W "UNIX" ,

3 % � , î ] standard input ý ã í á , Î \ ã £ ] � � ; standard output

ý ã í � , Î X � � � � � ; � sed ] s Ý ì « Ë Í Ì a ] s � î sed Ý �

® ø � � Í � , ¼ \ Ì a ] s � î sed Þ ý ã í á £ ] H á pattern space , � \

Ì a ] s � î sed Þ pattern space � _ ì � ± ¡ Ý £ ] X Õ ý ã í � �

3 Ì a ] s � , Ë Í @ a ] s 5 ½ � î pattern space � sed script� Í � ,

pattern space × c �   , ¸ Î sed � ® � X ; � sed script J � î × à Æ � Ý

_ ì ¼ � �

3 % � , ¼ \ Ì a ] s "Unix" ã ý ã í á H á pattern space ; # ½ , 3 �

\ Ì a ] s � , sed Æ � sed script � Ý _ ì ¼ � s/Unix/UNIX/ 1 , � �

"Unix" � � ð W "UNIX" , � ¡ , "UNIX" ã pattern space X Õ ý ã í � �

À ) î � X � , sed ã ý ã í á \ á × � £ ] ¬ w á pattern space ` , sed

µ ï sed script Ý _ ì ¼ � @ × E pattern space / Ý £ ] Æ � _ ì , � ¡ , �

ã pattern space / Ý � � X Õ ý ã í � , # ½ � Þ ì × � £ ] \ á � A h ¥ � Æ

� î � � ® , à � \ � X b £ ] � c �

1¼ � s/Unix/UNIX/ � î Þ "Unix" � ð W "UNIX"� � ¢ ï section 4.1�

5

Page 7: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

Chapter 2

¸ à sed

Sed ú � � � 5 W _ ì ¼ � � Z � j I � Í � , _ ì ¼ � � . � × X b Ý

_ ì � ® ; Z � j � î X � § Ý j n � sed Ý _ ì ¼ � í ã � ë (address)� Ð

ó (function)Ë I à W , Í � , 3 Æ � ` , sed ¿ à ¸ Ý � ë ¢ ó ¼ X � _ ì Ý

E é ;� à ¸ Ý Ð ó ¢ ó 2 X � X 2 ã Ý _ ì � ® � ¨ ² , î � Ý _ ì ¼ � , � 3 ú

� � î E 9 Í Z � j Æ � 3 _ ì �

h ² , sed _ ì ¼ � , t Ý � 3 ú � � î Æ � , ô � 3 j n / Æ � � Í � -

½ © Î 3 ú � � î Æ � ` , Í G Ä 6 � î ó 4 -e ; � 3 j n 4 / ` , J © m 3 Í j

( G � î ó 4 -f� ¨ ² , sed Æ � _ ì ¼ � Î µ ï ¸ Æ 3 ú � � î T j / Ý g � �

ì « & ; , Þ + Û Æ � ú � � î Ý _ ì ¼ � � sed _ ì ¼ � � Æ � j n /

Ý _ ì ¼ � � Æ � 9 Í j n Ý _ ì � C Æ � sed í � � × �

2.1 Æ � ú � � î Ý _ ì ¼ �

_ ì ¼ � 5 3 ú � � î Æ � ` , Í G Ä 6 � î ó 4 -e � Í ú � } P A ì :

sed -e '_ ì ¼ � 1' -e '_ ì ¼ � 2' ... Z � j

Í � , X b _ ì ¼ � K å # 3 ó 4 -e � ¡ , ¬ H y Ë Í " ' " © � C - � ¨ ² ,

ú � î _ ì ¼ � Ý Æ � Î ã ¼ � � �

19 × à _ ì ¼ � , 3 ¡ « í Ì sed script�23 ¼ � � b 20 ¿ Í Ð ó ¢ ó � º ó C �3� ¢ ï section2.4�4| ¡ 9 j n Ì ® script �le�5ñ Ñ 3 ì × ; º � Þ 1 � _ ì ¼ � �

6

Page 8: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

× � _ ì ¼ � � 9 ` , ¸ à ï ; ð à # 3 ú � î Æ � ¸ Æ � » A , À t yel.dat

/ 1 � 10 � £ ] , ¬ Þ Í õ Z C � Ý "yellow" C � ; W "black" C � � h ` ,

� Þ _ ì ¼ � à # 3 ú � î Æ � , Í ú � A ì :

sed -e '1,10d' -e 's/yellow/black/g' yel.dat

3 ú � � , _ ì ¼ � '1,10d'1 Æ � À t 1 � 10 � £ ] ; _ ì ¼ � 's/yellow/black/g'2

Æ � "yellow" C � � ð (substuite)W "black" C � �

2.2 sed Ý _ ì ¼ �

sed _ ì ¼ � Ý } P A ì :

[address1[,address2]]function[argument]

Í � , � ë ¢ ó address1 � address2 � ó T regular expression C � , � î

X Æ � _ ì Ý £ ] � ; Ð ó ¢ ó function[argument] sed Ý / � Ð ó , � î Æ

� Ý _ ì � ® �

ì « Ë � ; , Þ ~ Þ + Û � ë ¢ ó Ý � î ° � b ø ° Ð ó ¢ ó º ó C �

2.2.1 � ë (address)¢ ó Ý � î °

@ j î , � ë ¢ ó � î ° © Î Þ � _ ì Ý £ ] � , à ¸ Æ Ý � ó T Í � Ý C � ¼

� � � î ¸ Æ � ì « Ü ¿ Í » � 1 � (¼ � K | Ð ó ¢ ó d1 » ) :

� À t j / Ï 10 � £ ] , J ¼ � 10d�

� À t â b "man" C � Ý £ ] � ` , J ¼ � /man/d�

� À t j / Ï 10 � Õ Ï 200 � £ ] , J ¼ � 10,200d�

� À t j / Ï 10 � Õ â "man" C � Ý £ ] � , J ¼ � 10,/man/d�

# ì ¼ , | � ë ¢ ó Ý / � � Í Í ó Ë F , � J 1 � ¼ � � � ë ¢ ó Ý � î ° (

! ø ô | Ð ó ¢ ó d » )�

1_ ì ¼ � 1,10d � , 2 ë ¢ ó 1,10 , Æ 1 � 10 � Ý £ ] Æ � Ð ó ¢ ó d X ¼ � Ý Àt � ® �

2_ ì ¼ � s/yellow/black/g � , ã y ^ b 2 ë ¢ ó , Æ X b Ý £ ] � K � Æ � Ð ó ¢ ós/yellow/black/g X ¼ � � ð � ® � 3 Ð ó ¢ ó s/yellow/black/g � , /yellow/black/g s Ý argument , Í � î � ð £ ] � � X b Ý "yellow" W "black"�

7

Page 9: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

� � ë ¢ ó Ý / � :

{ � ë è � ó C :

h ó C � î � ó � ¼ � Æ � ` , Þ E Ð ) h � ó Ý £ ] Æ � Ð ó ¢

ó ¼ î Ý _ ì � ® � » A , À t £ ] j � Ý Ï 15 � £ ] , J ¼ �

15d1� Í õ v . ,A À t £ ] j � Ý Ï m � £ ] , J ¼ � md �

{ � ë regular expression2:

£ ] � � b Ð ) regular expression X � î Ý C � ` , J Æ � Ð ó ¢

ó ¼ î Ý _ ì � ® � ¨ ² , 3 regular expression G ¡ Ä 6 � î "/"�

» A ¼ � /t.*t/d , � î À t X b â Ë "t" C Ò Ý £ ] � � Í � ,

. � î � � C - ; * � î Í G C - � ¥ � � � g , ¸ Æ � ) .* � î Ë

"t" C Ò Ý � � C � �

� � ë ¢ ó Ý Í ó :

3 ¼ � � , ^ b � ë ¢ ó ` , � î � I £ ] � Æ � Ð ó ¢ ó X ¼ î Ý _ ì

� ® ; © b × � ë ¢ ó ` , � î © b Ð ) � ë Ý £ ] � � _ ì ; b Ë Í �

ë ¢ ó , A address1,address2 ` , � î E £ ]   Æ � _ ì , address1 �

� R � £ ] � , address2 � � � @ £ ] � � E y î � / � , | ì « » � � Ì

C 1 � �

1. » A ¼ �

d

Í � î À t j / X b £ ] � �

2. » A ¼ �

5d

Í � î À t j / Ï " � £ ] �

3. » A ¼ �

1Ð ó ¢ ó d � î £ ] � Ý À t �2� ¢ ï ASPAC Z � "Regular Expression Introduction"�

8

Page 10: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

1,/apple/d

Í � î À t £ ]   , ã j / Ï × � � / b "apple" C � Ý £ ] � �

4. » A ¼ �

/apple/,/orange/d

Í � î À t £ ]   , ã j / â b "apple" C � � â b "orange" C

� Ý £ ] �

2.2.2 b £ ° Ð ó (function)¢ ó

ì ° � � + Û X b sed Ý Ð ó ¢ ó 1 Ý � � �

1n y Ð ó ¢ ó � Þ Ý 1 � , � ¢ ï chapter4�

9

Page 11: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

Ð ó ¢ ó � �

: label � ñ script �le / ¼ � ! 8 ¢ � Ý � H �

# � ñ Û �

f g / ) b 8 ! � ë ¢ ó Ý ¼ � �

! � Æ � Ð ó ¢ ó �

= � � £ ] � ó ( line number )�

a \ x � ¸ à ï í á Ý £ ] �

b label Þ Æ � Ý ¼ � ® � ã : � ñ Ý ¢ � � H �

c \ | ¸ à ï í á Ý £ ] ã � £ ] �

d À t £ ] �

D À t pattern space / Ï × Í newline C Ò (nn)G

Ý £ ] �

g ¾ � £ ] � hold space1� pattern space2�

G x � £ ] � hold space � pattern space �

h ¾ � £ ] � pattern space � hold space �

H x � £ ] � pattern space � hold space �

l � � l £ ] � Ý nonprinting character à ASCII

D �

i \ æ á x � ¸ à ï í á Ý £ ] � �

n \ á ì × � £ ] �

N x � ì × � £ ] Õ pattern space�

p � � £ ] �

P � � pattern space / Ï × Í newline C Ò (nn)G

Ý £ ] �

q ® � sed _ ì �

r \ á ¸ j / � �

s � ð C � �

t label � Æ � × � ð Ý _ ì ¼ � , A � � ð W � J Þ _ ì ¼

� ® � : label � Æ � �

w ¶ £ ] Õ ¸ j / �

x ø ð hold space � pattern space / � �

y » ð (transform)C - �

4 Q , sed © b î � X � ¿ Í = b Ã Í _ ì � � Ý Ð ó , ¬ ã ¼ � � � ë ¢ ó õ ¼

� � ¼ � Ý g ) , ô � ¸ sed � W � I Ý _ ì � � �

1pattern space � hold space , � ¢ ï section1.5�

10

Page 12: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

2.3 Æ � j n / Ý _ ì ¼ �

Æ � Ý ¼ � H 9 , 3 ú � � î ã ¶ R ¼ è 5 � B , h ` , � Þ 9 ° ¼ � J

§ ; D 3 j n (É A j ( script �le )/ , à ó 4 -f script �le , J ¯ sed Æ �

script �le / Ý _ ì ¼ � � Í ú � Ý } î A ì :

sed -f script_file Z � j

Í � , Æ � script �le / _ ì ¼ � Ý 5 � Î ã î � ì � » A î × ; Ý » � , Í � ;

W A ì ú � :

sed -f ysb.scr yel.dat

Í � , ysb.scr j Ý / � A ì :

1,10d

s/yellow/black/g

¨ ² , 3 ú � � î � � ) ¸ à ó 4 -e � -f , sed Æ � ¼ � 5 � µ Q Î ã ú

� � Ý ¼ Õ � , A Æ � � -f ¡ j n / Ý ¼ � , J ã î � ì Æ � �

2.4 Æ � 9 Í Z � j Ý _ ì

3 sed ú � � î , × g � Æ � _ ì 9 Í Z � j , ¸ Æ « 3 _ ì ¼ � � ¡ � » A ,

� ð white.dat� red.dat� black.dat j / Ý "yellow" C � W "blue" , Í ú � A

ì :

sed -e 's/yellow/blue/g' white.dat red.dat black.dat

î � ú � Æ � ` , sed µ white.dat� red.dat� black.dat 5 � , Æ � _ ì ¼ �

s/yellow/blue/1 , � C � Ý � ð �

2.5 Æ � í � Ý � ×

3 ú � � î Ý ó 4 -n 2 � î í � ã _ ì ¼ � � × � ã G a / � ÿ á , sed º "�

� Ý " Þ £ ] ã pattern space í X Õ ý ã í � j � ¬ ¢ ½ ó 4 -n , � Þ sed 9

1n y _ ì ¼ � s/yellow/blue/g Ý 1 � , � ¢ ï section2.2�

11

Page 13: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

"� � Ý " Ý � ® ; W "� � Ý " ã ¸ X Æ � Ý _ ì ¼ � 3 ¼ X � � � Î Í í � �

ã î � � á , ó 4 -n Ä 6 � _ ì ¼ � × R g ) , Í J P ° � ÿ � � � » A

, � � white.dat j / â b "white" C � Ý £ ] � , Í ú � A ì :

sed -n -e '/white/p' white.dat

î « ú � � , ó 4 -n � _ ì ¼ � /white/p 4 × R g ) � × í � � Í � , ó 4 -n

Þ í � � × J É � _ ì ¼ � ;/white/p Þ £ ] � � â b "white" C � � � Ç K �

2Í ú � } P A ì :

sed -n [-e _ ì ¼ � ].. [-f script �le].. [Z � j ..]

39 ° _ ì ¼ � � Ý Ð ó ¢ ó � � Î p� l� s Ý Í � � × �4_ ì ¼ � /white/p � , Ð ó ¢ ó p � î í � pattern space / Ý £ ] �

12

Page 14: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

Chapter 3

P »

× � 3 @ j ¸ à _ ì Ý Ä � � , ð m � Æ � � ð Z � � Ý C � � ¦ É � À t �

� ¨ ´ £ ] � � � � ® � Q , × � ø � P _ ì (A vi� emacs)K � � ÿ Õ î �

� � , ¬ Z � × Ë b � � î � _ ì m O ` , J à ¸ Æ _ ì è 5 ^ b [ £ � Í a Þ à

Ü » Ý ] P 1 � A ¢ à sed � � Æ � 9 ° _ ì � � � h ² , 3 Í a P » � , í | ì

� ] P à � Z � Ý m O :

Þ Z � � ...£ ] , Æ � ...(� ® )

A h , ê Ý Î Ý � Þ ¸ Æ � > Ý » W _ ì ¼ � � Í � , " ...£ ] " I , » W ¼

� � Ý � ë ¢ ó � î ; "Æ � ...� ® " I , J » W Ð ó ¢ ó � î � ¨ ² , "Æ

� ...� ® " � ã ó Í Ð ó ¢ ó � î ` , J � ¿ à { � } / ) 9 ° Ð ó ¢ ó 3 , Í ¼

� � P A ì :

� ë ¢ ó {

Ð ó ¢ ó 1

Ð ó ¢ ó 2

Ð ó ¢ ó 3

.

:

}

î � ¼ � � î , Þ E Ð ) � ë ¢ ó Ý £ ] , µ g Æ � Ð ó ¢ ó 1� Ð ó ¢ ó 2� Ð

ó ¢ ó 3 ... � î Ý � ® � ì « & ; , 5 ½ Ü » 1 � sed � ð £ ] � É � � À t £

] � C ¨ ´ £ ] Ý ú � �

2sed ¬ � Ê ) � × ° £ ] � / Ý Z C Ý _ ì � ® , » A * ð � ´ � Ý C � � À t Ï 3 Í

C � � æ á J � £ ] 3 Ï 5 Í C � ¡ � � �1» A , À t 1 � 1000 � £ ] � T Þ Z � � X b £ ] � / Ý "the" C � � ð W "that" �

� �33 b ° � µ ì , ô � à _ ì ¼ � � � Ð ó ¢ ó � » A section3.3 � » Þ �

13

Page 15: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

3.1 � ð Z � � Ý £ ]

Sed � � ð Z � � Ý C � � £ ] � � # � £ ]   � Í � , � î � ð C � Ý ¼ � �

Ý Ð ó ¢ ó s1 ; � î � ð £ ] � � T £ ]   Ý ¼ � � Ý Ð ó ¢ ó c2� î � �

µ | ì « ë Í » � 1 � �

� » × . Þ Z � � â "machine" C � Ý £ ] � � Ý "phi" C � , � ð W

"beta" C � � Í ú � � A ì :

sed -e '/machine/s/phi/beta/g' input.dat3

� » Þ . Þ Z � � Ï 5 � £ ] , � ð W ­ � "Those who in quarrels interpose,

must often wipe a bloody nose."� Í ú � � A ì

sed -e '5c\

Those must often wipe a bloody nose.

' input.dat

� » ë . Þ Z � � 1 � 100 � Ý £ ]   , � ð W A ì Ë � £ ] :

How are you?

data be deleted!

J Í ú � � A ì

sed -e '1,100c\

How are you?\

data be deleted!

' input.dat

33 ¡ « Ý / � � ,Z � j K | input.dat ¼ � � �1� ¢ ï section 4.12� ¢ ï section 4.5

14

Page 16: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

3.2 ¦ � Z � � Ý £ ]

¸ à ï � à sed � Ý hold space õ D _ ì � Ý £ ] � à Ð ó ¢ ó w4 Þ Z �

£ ] ¦ � Õ ¸ j / ; D � T à Ð ó ¢ ó r5Þ ¸ j / � ¦ Õ Z � / � Hold space Î

sed à ¼ õ D pattern space2 / £ ] Ý õ D , sed Æ � Ð ó ¢ ó h� H1 ` ,

º Þ pattern space £ ] õ D Õ hold space; Æ � Ð ó ¢ ó x� g� G3 ` , º Þ

õ D Ý £ ] ã Õ pattern space � ì « Ü ë Í » � 1 � �

� » × . Þ Z � � Ý G 100 £ ] , ¦ Õ Z � � Ï 300 ¡ í � � Í ú � � A ì :

sed -f mov.scr Z � j

mov.scr j Ý / �

1,100{

H

d

}

300G

Í � ,

1,100{

H

d

}

¸ � î Þ Z � � Ý G 100 £ ] , � ; D 5 3 hold space � ¡ À t 6 ; � ¼ �

300G7 � î , Þ hold space / Ý £ ] , x � 3 Z � � Ý Ï 300 £ ] ¡ í

� �

1¢ ï section 4.19-202¢ ï section1.43¢ ï section 4.21-234¢ ï section 4.95¢ ï section 4.84¢ ï section 4.105¢ ï ! � � , n y Ð ó ¢ ó h Ý 1 �6¢ ï ! � � , n y Ð ó ¢ ó d Ý 1 �7¢ ï section 4.22

15

Page 17: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

� » Þ . Þ Z � � â "phi" C � Ý £ ] � , ¦ � mach.inf j � ; D � Í ú �

� A ì :

sed -e '/phi/w mach.inf' Z � j

� » ë . Þ mach.inf j / � , ¦ � Z � � â "beta" C � Ý £ ] � � Í ú � �

A ì :

sed -e '/beta/r mach.inf' Z � j

¨ ² , ã y sed Î × stream8_ ì , Æ § ¡ î Z � ¡ « £ ] � � � x � Ý ¦ Õ Z

� G « �

8¢ ï section1.4

16

Page 18: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

3.3 À t Z � � Ý £ ]

. sed Î × � _ ì , X | sed � � | À t Í ½ £ ] � T J Í £ ]   � × �

à Ð ó ¢ ó d1 T D2 ¼ � î � ì « Ü Ë Í » � 1 � �

� Þ Z � / X b è ç � � I À t � Í ú � �

sed -e '/^$/d' Z � j

regular expression3 ^$ � î è ç � � Í � , ^ § × Í ¡ C � Ä 6 3 � ´ ; $

§ × Í G C � Ä 6 3 � � �

� Þ Z � / = � Ý è ç � , À t ¸ Æ W × � � Í ú � �

sed -e '/^$/{

N

/^$/D

}' Z � j

Í � , Ð ó ¢ ó N4� î , Þ è ç � Ý ì × � £ ] x � � pattern space / �

Ð ó ¢ ó /^$/D � î , x � Ý Î è ç � ` , À t Ï × � è ç � , � v y ì

Ý è ç � J � ¥ ± Æ � ¼ � × g � ¼ � ¥ ± Æ � × g , À t × � è ç � , A

h D « à � è ç � ¡ x � Ý & è ç � c , Æ = � Ý è ç � t ¡ © y × è

ç � � í � �

1¢ ï section 4.2�2¢ ï section 4.17�3¢ ï ! � A , T ASPAC Z � "Regular Expression Introduction"�4¢ ï section 4.16

17

Page 19: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

3.4 ¨ ´ Z � � Ý £ ]

Sed � | Æ � v « UNIX ú � grep Ý � � � § ¡ î , � à regular expression1

� î Ý £ ] K � � ¨ ´ 2 � » A , Þ Z � � â b "gamma" C � Ý £ ] � í � � J

Í ú � � A ì :

sed -n -e '/gamma/p' Z � j

¬ Î , sed Î � _ ì , ¸ Ý ¨ ´ Ã Í î Î | × � � � � . h , × ° C � .

ð � � � t W Ë I ` , × � Ý ] ° Ç � � � � h ` , µ Ä 6 | ) ¿ Ë � Ý ] P ¼

¨ ´ 9 ° £ ] � Í � µ A ì « » � :

» . Þ Z � � â "omega" C � Ý £ ] í � � Í ú � � A ì

sed -f gp.scr Z � j

gp.scr j Ý / � A ì :

/omega/b

N

h

s/.*\n//

/omega/b

g

D

3 î � sed script3 / , . ¢ ½ Ð ó ¢ ó b4 � W v « C + � � Ý case statement

� x , ¸ ÿ sed � 5 ½ � § £ ] / â "omega" C � ; "omega" C � � t W

Ë � ; | C £ ] / ^ b "omega" C � Ý � µ � # ì ¼ µ µ î � Ý ë Ë � µ , Þ sed

script 5 W ì « ë I ¼ D ¡ �

1. £ ] / â "omega" , J Æ � _ ì ¼ �

/omega/b

¸ � î £ ] / â "omega" C � ` , sed � à � E ¸ Æ � ¡ « Ý ¼ � , �

à # Þ ¸ í � �

1� ¢ ï ! � A , T ASPAC Z � "Regular Expression Introduction"�2sed � X | ? à Ý × I æ . , ¯ @ î , µ Î . ¸ . & à regular expression¼ � î

£ ] �39 � , sed script Î ¼ gp.scr j Ý / � � ¸ � î 9 × g sed Æ � Ý _ ì ¼ � �4¢ ï section 4.24�

18

Page 20: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

2. £ ] / ^ b "omega" , J Æ � _ ì ¼ � A ì

N

h

s/.*\n//

/omega/b

Í � , Ð ó ¢ ó N4 , ¸ � î Þ ì × � £ ] \ á ¸ ÿ pattern space / â G ¡

Ë � £ ] � Ð ó ¢ ó h5 , ¸ � î Þ pattern space / Ý G ¡ Ë � £ ] D á

hold space � Ð ó ¢ ó s/.*\n// , ¸ � î Þ pattern space / Ý G ¡ Ë �

£ ] ) ¿ 6 W × � � /omega/b , ¸ � î A � ) ¿ ¡ Ý £ ] / â "omega" C

� , J � à � Æ � ¸ � ¡ Ý ¼ � , � Þ h £ ] � � í � ;

3. ) ¿ ¡ Ý £ ] µ � � â "omega" , J Æ � _ ì ¼ � A ì

g

D

Í � , Ð ó ¢ ó g7 , ¸ � î Þ hold space / ) ¿ G Ý Ë � £ ] w / pattern

space� Ð ó ¢ ó D8 , ¸ � î À t Ë � £ ] � Ý Ï × � £ ] , ¬ ¯ y ì Ý £

� £ ] , ¥ ± Æ � sed script� A h , P ¡ Ý £ ] � / T � Ý C � � � ¨

´ � � �

4¢ ï section 4.16�5¢ ï section 4.19�6 h Ð ó ¢ ó , � î � ð * ( t * ) pattern space / Ë � Ý ð � B r � Æ sed -

pattern space / © b × � £ ] �7¢ ï section 4.21�8¢ ï section 4.17�

19

Page 21: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

Chapter 4

+ Û Ð ó ¢ ó

Í a Þ | × ; × Í Ð ó ¢ ó Ý ] P ,+ Û X b sed è º Ý Ð ó ¢ ó , Í � b

s� d� a� i� c� p� l� r� w� y� !� n� q� =� #� N� D� P� h� H� g� G� x�

b� :label� t� ¨ ² , 3 & ; � , ´ � � � + Û Ð ó ¢ ó � � , # ½ 1 � Ð ó ¢ ó

� � ë ¢ ó g ) Ý } P , � Í � ô × ¿ à � sed Æ � h Ð ó ¢ ó Ý � ® � � �

4.1 s

Ð ó ¢ ó s � î � ð (substitute)Z � / C � � Í ¼ � } P A ì :

[address1[,address2]]s/pattern/replacement/[ ag]

E î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó s t 9 � Ë Í � ë ¢ ó g ) �

2. n y "s/pattern/replacement/[ ag]"1 b ì « ¿ F 1 � :

� pattern : ¸ reguler expression C � � ¸ � î Z � � � � � ð Ý C

� �

� replacement : ¸ × � C � � ¬ Í / � ¨ ì � C - b © ½ � L :

(a) & : � � Í G pattern C � � » A

sed -e 's/test/& my car/' £ ] j (

1Í � , /pattern/replacement/[ ag] Ð ó ¢ ó s Ý argument�

20

Page 22: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

¼ � � , & � � pattern C � "test"� Æ Æ � ¡ , £ ] j Ý

"test" � � ð W "test my car"�

(b) \n : � � pattern � � Ï n Í \( � \)1 X À R ¼ Ý C � � » A

sed -e 's/\(test\) \(my\) \(car\)/[\2 \3 \1]/' £ ]

j (

¼ � � , \1 � î "test"� \2 � î "my"� \1 � î "car" C � �

Æ Æ � ¡ , £ ] j Ý "test my car" � � ð W "[my car test]"�

(c) \ : � à ¸ ¼ � æ × ° © � Ð r (A î � Ý & � \)Í � C « î Ý �

L , T à ¸ ¼ � � ð � �

� ag : x � à ¸ ¼ � × × ° � ð � µ :

{ ag g ` , � � � ð X b Ð ) (match)Ý C � �

{ ag è � ó C m ` , � � � ð � / Ï m Í Ð ) Ý C � �

{ ag p ` , � � � ð Ï × Í Ð ) pattern Ý C � ¡ , Þ £ ]

í � ý ã í � j �

{ ag w w�le ` , � � � ð Ï × Í Ð ) pattern Ý C � ¡ ,

í � Õ w�le j / (A � w�le � D 3 , J º ¥ ± � @ ( w�le Ý

j n )�

{ ^ b ag ` , J Þ £ ] � / Ï × Í Ð ) pattern Ý C � |

replacement C � ¼ � ð �

� delimiter : 3 "/pattern/replace/[ ag] " � "/" � W × delim-

iter� t Ý è ç (blank)� ð � (newline) � ² , ¸ à ï � à � ¢ C - ®

delimiter� » A ì � _ ì ¼ �

s#/usr#/usr1#g

î � ú � � # delimiter� A � à "/" � delimiter , J sed º Þ

pattern � replacement � Ý "/" W delimiter � s ß ý 0 �

3. P » :

� Þ ê : � ð input.dat j (¡ « A � ^ b © ½ ¼ � , í � ' Z � j

( input.dat)/ "1996" C � W "1997" , ! ` Þ 9 ° £ ] � D á

year97.dat j / �

� 1 � : à Ð ó ¢ ó s ¼ î sed Þ "1996" C � � ð W "1997" , ¨ ² à

s argument � Ý ag w ¼ î sed Þ � ð Ä Ý £ ] � D á year97.dat

j / �

� sed ú � � :

21

Page 23: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

sed -e 's/1996/1997/w year97.dat' input.dat

4.2 d

Ð ó ¢ ó d � î À t £ ] � , Í ¼ � } P A ì :

[address1[,address2]]d

E î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó d t 9 � Ë Í � ë ¢ ó g ) �

2. sed Æ � À t � ® � µ A ì :

(a) Þ pattern space / Ð ) � ë ¢ ó Ý £ ] À t �

(b) Þ ì × � £ ] \ pattern space �

(c) ¥ ± Æ � sed script�

3. P » : � ¢ � section 3.3�

4.3 a

Ð ó ¢ ó a � î Þ £ ] x � Õ Z � � � Í ¼ � } P A ì :

[address1]a\¸ à ï X í á Ý £ ]

E î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó a t 9 � × Í � ë ¢ ó g ) �

2. Ð ó ¢ ó a å # ½ "\" C - à ¼ � î h � � @ , ¸ à ï X í á Ý £ ] Ä 6 �

ì × � í á � A � £ ] ø Ä × � , J 6 3 N � Ý � � � á "\"�

3. sed Æ � x � � ® � µ A ì : pattern space / £ ] í � ¡ , sed « ½ í

� ¸ à ï X í á Ý £ ] �

1¢ � ASPAC Z � "Introduction Regular Expression"

22

Page 24: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

4. P » :

� Þ ê : x � "9 � ® ¼ � Ù " 3 â "UNIX" C � Ý £ ] � ¡ � � '

input.dat j Ý / � A ì :

UNIX

� 1 � : à Ð ó ¢ ó a Þ X í á Ý £ ] x � 3 â "UNIX" C � Ý £ ] �

¡ �

� sed ú � � A ì :

sed -e '/UNIX/a\

9 � ® ¼ � Ù

' input.dat

Æ � î � ú � ¡ , Í í � � � A ì :

UNIX

9 � ® ¼ � Ù

4.4 i

Ð ó ¢ ó i � î Þ £ ] æ á Z � � � Í ¼ � } P A ì :

[address1]i\¸ à ï X í á Ý £ ]

E î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó i t 9 � × Í � ë ¢ ó g ) �

2. Ð ó ¢ ó i å # ½ "\" C - à ¼ � î h � � @ , ¸ à ï X í á Ý £ ] Ä 6 �

ì × � í á � A � £ ] ø Ä × � , J 6 3 N � Ý � � � á "\"�

3. sed Æ � æ á � ® Ý � µ A ì : 3 pattern space / £ ] í � G , sed � í

� ¸ à ï X í á Ý £ ] �

4. P » :

� Þ ê : Þ "Z a Ì J ò y � ³ @ ~ o " æ 3 input.dat j � â "o � :

A G ï " Ý £ ] � � G � � ' input.dat j / � A ì :

o � : A G ï

23

Page 25: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

� 1 � : à Ð ó ¢ ó i Þ £ ] � "Z a Ì J ò y � ³ @ ~ o " æ 3 â "o

� : A G ï " Ý £ ] � � G �

� sed ú � � A ì :

sed -e '/o � : A G ï /i\

Z a Ì J ò y � ³ @ ~ o

' input.dat

Æ � î � ú � ¡ Ý í � A ì :

Z a Ì J ò y � ³ @ ~ o

o � : A G ï

4.5 c

Ð ó ¢ ó c � î ; � Z � � Ý £ ] � Í } P A ì :

[address1[,address2]]c\¸ à ï X í á Ý £ ]

E î � } P b ì « ¿ F 1 � :

� Ð ó ¢ ó c t 9 � Ë Í � ë ¢ ó g ) �

� Ð ó ¢ ó c å # ½ "\" C - à ¼ � î h � � @ , ¸ à ï X í á Ý £ ] Ä 6 �

ì × � í á � A � £ ] ø Ä × � , J 6 3 N � Ý � � � á "\"�

� sed Æ � ; � � ® Ý � µ : 3 pattern space / £ ] í � ` , sed ; � ¸ W

¸ à ï X í á Ý £ ] �

� P » : ¢ � section 3.1 � » Þ � ë �

4.6 p

Ð ó ¢ ó p � î � � £ ] � Í ¼ � } P A ì :

[address1[,address2]]p

E y î � } P b ì « ¿ F 1 � :

24

Page 26: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

1. Ð ó ¢ ó p t 9 � Ë Í � ë ¢ ó g ) �

2. sed Æ � � � � ® Ý � µ A ì : sed ¾ n × pattern space / � � ý ã í

� j �

3. P » : ¢ � section 3.4 � � Ý / � �

4.7 l

Ð ó ¢ ó l , t � Þ £ ] � Ý nonprinting character | ASCIID � � ² , Í y í

� Ð ó ¢ ó p 8 ! � » A , Þ ì « input.dat j � Ý ^[ | ASCII D � �

The Great ^[ is a movie starring Steve McQueen.

Æ � ú � sed -e 'l' input.dat ¡ , J í � � � A ì :

The Great \003 is a movie starring Steve McQueen.

The Great is a movie starring Steve McQueen.

î � Ï Þ � £ ] sed Ý � � í � 1 �

4.8 r

Ð ó ¢ ó r � î \ á ¸ j n / � Õ Z � � � Í ¼ � } P A ì :

[address1]r ¸ j ( Ì

E y î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó r t 9 � × Í � ë ¢ ó g ) �

2. 3 ¼ � � , Ð ó ¢ ó r � ¸ j ( Ì , © � b × è } �

3. sed Æ � \ á � ® Ý � µ A ì : 3 pattern space / £ ] í � ¡ , sed \ �

¸ j Ý / � « ½ í � � ¸ j � D 3 ` , sed ï ø Æ � Í ¸ ¼ � � � º b �

¢ ý 0 G > ® ß �

4. P » : ¢ � section 3.1 � » ë �

1� ¢ ï section 1.4 T section 2.5�

25

Page 27: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

4.9 w

Ð ó ¢ ó w � î Þ Z � � Ý ¶ Õ ¸ j / � Í ¼ � } P A ì :

[address1[,address2]]w ¸ j ( Ì

E y î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó w t 9 � Ë Í � ë ¢ ó g ) �

2. 3 ¼ � � , Ð ó ¢ ó w � ¸ j ( Ì , © � b × è } �

3. sed Æ � ¶ � � ® Ý � µ A : Þ pattern space / £ ] ¶ Õ ¸ j / � £ ] ¶

á ` , º ã � (overwrite)æ ¼ j n / Ý £ ] � ¨ ² , ¸ j � D 3 ` , sed

º ¥ ± ® ß (creat)¸ �

4. P » :¢ � section 3.1 � » Þ �

4.10 y

Ð ó ¢ ó y � î » ð £ ] � Ý C - � Í ¼ � } P A ì :

[address1[,address2]]y/xyz.../abc.../

E y î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó t 9 g ) Ë Í � ë ¢ ó �

2. ¼ � � , /abc.../xyz.../(x� y� z� a� b� c � � Ø ° C - ) y Ý argu-

ment � Í � abc... � xyz... Ý C - Í ó Ä 6 8 ! �

3. sed Æ � » ð ` , Þ pattern space / £ ] / Ý a C - » ð W x C - � b

C - » ð W y C - � c C - » ð W z C - ...�

4. P » :

� Þ ê : Þ input.dat j � Ý � ¶ C Ò ; W � ¶ � � ' input.dat j Ý /

� A ì :

Sodd's Second Law:

Sooner or later, the worst possible set of

circumstances is bound to occur.

26

Page 28: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

� 1 � :¿ à Ð ó ¢ ó y ¼ î sed � C Ò � � Ý » ð �

� sed ú � � A ì :

sed -e '

y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/

' input.dat

Æ � î � ú � í � � � A ì :

SODD'S SECOND LAW:

SOONER OR LATER, THE WORST POSSIBLE SET OF

CIRCUMSTANCES IS BOUND TO OCCUR.

4.11 !

Ð ó ¢ ó ! � î � Æ � Ð ó ¢ ó � b A ì ¼ � ` ,

[address1[,address2]]!Ð ó ¢ ó

� î , E Ð ) � ë ¢ ó � £ ] � Æ � Ð ó ¢ ó � » A À t , t Ý â "1996" C

� , X b £ ] � , J Æ � A ì ú �

sed -e '/1996/!d' input.dat

4.12 n

Ð ó ¢ ó n � î \ á ì × � £ ] � Í ¼ � } P A ì :

[address1[,address2]]n

E î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó n t 9 g ) Ë Í � ë ¢ ó �

2. sed Æ � \ á ì × � � ® Ý � µ A ì :

(a) í � 3 pattern space Ý £ ] �

(b) Þ ì × � £ ] \ Õ pattern space�

27

Page 29: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

(c) Æ � ì × Í _ ì ¼ � �

3. P » 1 :

� Þ ê : í � input.dat j / � ó � £ ] � � ' input.dat j / � A ì :

The

UNIX

Operation

System

� 1 � : 3 ú � � î

(a) | ó 4 -n , Þ £ ] í � Ý � × J 2 » � ¼ � �

(b) ¿ à Ð ó ¢ ó n Þ ì × � £ ] (� ó � )ã � pattern space / Ý

£ ] � (� ó � )�

(c) ¿ à Ð ó ¢ ó p Þ pattern space / Ý £ ] (� ó � )í � �

t ¡ , J Í í � © b æ � j / Ý � ó � £ ] �

� sed ú � � A ì :

sed -n -e 'n' -e 'p' infro.dat

Æ � î � ú � ¡ , í � Ý � � A ì :

UNIX

System

4.13 q

Ð ó ¢ ó q � î ® Ò sed � Í ¼ � } P A ì :

[address1]q

E î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó q t 9 g ) × Í � ë ¢ ó �

2. sed Æ � ® Ò � ® ` , ¸ � c í á pattern space £ ] , ! ` � c £ ] X Õ

ý ã í � j �

1� � section4.18 � Ý P » f ´ �2¢ ï section 2.5�

28

Page 30: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

3. P » :

� Þ ê : E Z � j Æ � script �le / Ý _ ì ¼ � , t & Â Õ "Linux" C

� �

� 1 � : P ¡ script �le / Î ¢ Ë ¼ � , ¸ à ï © � 3 ú � � î à ¼

� /Linux/q , Ð ó ¢ ó q º ú � sed Â Õ "Linux" ` � ® Ò � ® �

� sed ú � � A ì :

sed -e '/Linux/q' -f script_file input.dat

4.14 =

Ð ó ¢ ó = � î � � £ ] Ý � ó � Í ¼ � } P A ì :

[address1,[address2]]=

E î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó = t 9 g ) Ë Í � ë ¢ ó �

2. Æ � ` , � ó Þ 3 £ ] í � G � í � �

3. P » :

� Þ ê : � � input.dat j / £ ] � ó � � ' input.dat Ý / � A ì :

The UNIX

Operating System

� 1 � : à Ð ó ¢ ó = ¼ � � £ ] Ý � ó �

� sed ú � � A ì :

sed -e '=' input.dat

Æ � î � ú � ¡ , í � Ý � � A ì :

1

The UNIX

2

Operating System

29

Page 31: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

4.15 #

3 script �le / , Ð ó ¢ ó # ¡ Ý Z C ¥ � � ¥ � Z C ø Ä 9 � ` , Í �

6 | "\" ð � C - 8 â �

4.16 N

Ð ó ¢ ó N � î x � ì × � £ ] 3 pattern space / � Í ¼ � } P A ì :

[address1,[address2]]N

E î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó N t 9 g ) Ë Í � ë ¢ ó �

2. sed Æ � ` , Þ ì × � £ ] \ á ¬ x � 3 pattern space / , £ ] � | ð

� C - (embedded newline character)5 â � h ² , 3 � ð ` , ð � C - �

à \n ¼ match�

3. P » :

� Þ ê : Þ ì � Ë � £ ] ) ¿ � � ' input.dat Ý / � A ì :

The UNIX

Operating System

� 1 � : � ¿ à Ð ó ¢ ó N Þ Ë � £ ] H y pattern space / , 3 ¿ à

Ð ó ¢ ó s/\n/ / Þ Ë � £ ] Ý 5 â r \n | è ç � � , A h Ë �

£ ] � W × � í � �

� sed ú � � A ì :

sed -e 'N' -e 's/\n/ /' input.dat

Æ � î � ú � ¡ , Í í � Ý � � A ì :

The UNIX Operating System

4.17 D

Ð ó ¢ ó D � î À t pattern space / Ý Ï × � £ ] � Í ¼ � } P A ì :

30

Page 32: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

[address1,[address2]]D

E î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó D t 9 g ) Ë Í � ë ¢ ó �

2. Ð ó ¢ ó D � d Ý f ´ A ì :

(a) pattern space / © b × £ ] � ` , D � d ® à 8 ! �

(b) pattern space / b 9 � £ ] � `

i. D � î © À t pattern space / Ï × � £ ] ; d J � À t �

ii. D � î Æ � À t ¡ , pattern space / � x � ì × � £ ] , �

Þ y ì Ý £ ] ¥ ± Æ � sed script ; d J \ á ì × � ¡ Æ � sed

script�

3. P » : ¢ � section 3.3 Ý Ï Þ Í » � �

4.18 P

Ð ó ¢ ó P � î � � pattern space / Ý Ï × � £ ] � Í ¼ � } P A ì :

[address1,[address2]]P

E î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó P t 9 g ) Ë Í � ë ¢ ó �

2. P � p , t Ý « E Ý pattern space / Ý £ ] � ó � ! ² , Í ¸ í 8 ! �

3. P » 1 :

� Þ ê : í � input.dat j / � ó � £ ] � � ' input.dat j / � A ì :

The

UNIX

System

� 1 � : 3 ú � � î

1� � section4.12 � Ý P » f ´ �

31

Page 33: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

(a) | ó 4 -n , Þ £ ] í � Ý � × J 2 » � ¼ � �

(b) ¿ à Ð ó ¢ ó N Þ � ó � x � � pattern space / � ó � ¡ �

(c) ¿ à Ð ó ¢ ó P Þ pattern space / Ý Ï × � (� ó � )í � �

3 � ó � í � ¡ , pattern space / y ì Ý £ ] � (� ó � )J � w a í

� � t ¡ , J Í í � © b æ � Ý � ó � £ ] �

� sed ú � � :

sed -n -e 'N' -e 'P' infro.dat

Æ � î � ú � ¡ , í � Ý � � A ì :

The

System

4.19 h

Ð ó ¢ ó h � î õ D pattern space Ý £ ] � hold space� Í ¼ � } P A ì :

[address1,[address2]]h

E î � } P b ì « ¿ F 1 � :

1. Ð ó ¢ ó h t 9 g ) Ë Í � ë ¢ ó �

2. sed Æ � õ D � ® ` , º � * (overwrite) hold space / æ ¼ Ý £ ] �

3. sed � I Æ � � @ ` , hold space / £ ] º � � z t �

4. P » :¢ � section 3.4 Ý » � �

4.20 H

Ð ó ¢ ó H � h ° × - ½ Î , sed Æ � h ` , £ ] � * (overwrite) hold space

/ æ ¼ Ý £ ] , � H , £ ] J Î "x � (append)" 3 hold space æ ¼ £ ] ¡ � »

Þ � ¢ � section 3.2 � » × �

2¢ ï section 2.5�

32

Page 34: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

4.21 g

Ð ó ¢ ó g � î � Ð ó ¢ ó h 8 D Ý � ® , ¸ � î Þ hold space / £ ] w /

pattern space / � Í ¼ � } P A ì :

[address1,[address2]]g

1. Ð ó ¢ ó g t 9 g ) Ë Í � ë ¢ ó �

2. sed Æ � w / � ® ` , £ ] � * (overwrite)1 pattern space / æ ¼ Ý £ ] �

3. » Þ :¢ � section 3.4 Ý » � �

4.22 G

Ð ó ¢ ó G � g ° × - ½ Î , sed Æ � g ` , £ ] � * (overwrite) pattern

space / æ ¼ Ý £ ] , � G , £ ] J Î "x � (append)" 3 pattern space æ ¼

£ ] ¡ � » � � ¢ � section 3.2 » × �

4.23 x

Ð ó ¢ ó x � î ø ð hold space � pattern space / Ý £ ] � Í ¼ � } P A ì :

[address1,[address2]]x

Ð ó ¢ ó x � I � Í ¸ � § hold space Ý Ð ó ¢ ó × R g ) � » A , Þ

input.dat j / Ï 1 £ ] ã � Ï 3 � £ ] � h ` , à Ð ó ¢ ó h � x ¼ g ) � Í

� , | Ð ó ¢ ó h Þ Ï 1 £ ] D á hold space ; Ï 3 � £ ] � ¨ 3 pattern

space , | Ð ó ¢ ó x ø ð hold space � pattern space Ý / � � A h , Ï 3 �

£ ] µ � Ï 1 £ ] � � � Í ú � � A ì :

sed -e '1h' -e '3x' input.dat

1¥ � h ` , 4 Q £ ] Î w / pattern space , ¬ hold space Ý / � � Î � � �

33

Page 35: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

4.24 b� :label

Ð ó ¢ ó : � Ð ó ¢ ó b � 3 sed script / � ñ v « BASIC + � � GOTO ¼

� Ý � � � Í � , Ð ó ¢ ó : � ñ ý B ;Ð ó ¢ ó b Þ ì × Í Æ � Ý ¼ � branch

Õ ý B � Æ � � Ð ó ¢ ó : � b , 3 script �le / g ) Ý � µ A ì

.

.

.

_ ì ¼ � m1

:B r

_ ì ¼ � m2

.

.

.

[address1,[address2]]b [B r ]

Í � , sed Æ � � ¼ � [address1,[address2]]b [B r ] ` , A pattern space /

Ý £ ] Ð ) � ë ¢ ó , J sed Þ ì × Í Æ � Ý � H branch � ã :B r 1 ' � Ý ý

B � , ô µ Î � ã "_ ì ¼ � m2" ... Æ � � ¨ ² , A � ¼ � � Ð ó ¢ ó b ¡ ^ b

B r , J sed Þ ì × Í Æ � Ý ¼ � branch Õ script �le Ý t ¡ , ¿ à h � ¸ sed

script / b v « C + � � Ý case statement � x �

P » :

� Þ ê : Þ input.dat j / £ ] � Ý � � C Ò ¥ « � 40 g � � ' input.dat

j Ý / � A ì :

A

B

C

� 1 � : à ¼ � b p1 � :p1 x W Æ � ¦ � C Ò Ý ] º (loop) , ! ` 3 C Ò � ¨

40 Í ` , ô à ¼ � b ¼ ® � ] º � ì « µ | j / Ï × � £ ] "A" » , à

� ¸ A ¢ = � 9 x � 39 Í "A" 3 ! × � :

1. à ¼ � s/A/AA/(¢ ï section4.1)Þ "A" � ð W "AA"�

1¥ � ":" � B r � � b è }

34

Page 36: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

2. à ¼ � b p1 � :p1 x W ] º (loop) , ¸ ê Ý ¸ î � � ® � D « Ý Æ

� � N Æ � × g ] º , J £ ] � î Ý "A" µ 9 � × Í � » A , Ï × g

] º £ ] � � W "AA" , Ï Þ g ] º £ ] � � W "AAA" ...�

3. à ¼ � /[ABC]\{40\}/b1 ¼ ® � c ] º Ý f � � £ ] � b = �

40 Í A � ¨ ` , Ð ó ¢ ó b Þ Æ � Ý ¼ � ® Õ t ¡ , � c E h � Ý

_ ì �

! ø , E Í ¸ £ ] � ô A ! î � Ý ] P Æ � �

� sed ú � � A ì :

sed -e '{

:p1

/A/s/A/AA/

/B/s/B/BB/

/C/s/C/CC/

/[ABC]\{40\}/b

b p1

}' input.dat

4.25 t

Ã Í î , Ð ó ¢ ó t � Ð ó ¢ ó b Ý � � v « , t Ý 3 Æ � t Ý branch G , º

� � ? � Í G Ý � ð ¼ � b ^ b Æ � � ð W � ² � 3 script �le / Ý � µ A ì :

.

.

.

_ ì ¼ � m1

:B r

_ ì ¼ � m2

.

.

.

s/.../.../

[address1,[address2]]t [B r ]

_ ì ¼ � m3

1� ë ¢ ó [ABC]f40g � î 40 Í A C Ò T 40 Í B C Ò T 40 Í C C Ò � Í � [ABC]

� î "A" T "B" T "C"; Í ¡ Ý f40g � î Í G Ý C Ò b 40 Í � regular expression � ¢ï appendix A�

35

Page 37: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

Í � , � Ð ó ¢ ó b � ! � 3 y , Æ � Ð ó ¢ ó t branch ` , º � l ã Í G × Í

� ð ¼ � W � � Í � A W � , J Æ � branch ; � W � , J � branch , � µ � Æ �

ì × Í _ ì ¼ � , » A î « Ý _ ì ¼ � m3�

P » :

� Þ ê : Þ input.dat j � £ ] A1 � ð W C1� C1 � ð W B1� B1 � ð W

A1� input.dat j Ý / � A ì :

� r

B1

A1

B1

C1

A1

C1

� 1 � : input.dat j � � I £ ] � © m � Æ � × g � ð � ® , ¬ � ¹ £ ]

� � ð 9 g , X | ¿ à Ð ó ¢ ó t 3 sed script / � W × v « C + � �

case statement � x , ¸ N � £ ] � ð × g ¡ � ñ Ç à Ð ó ¢ ó t ® Ò � ð

_ ì �

� sed ú � � :

sed -e '{

s/A1/C1/

t

s/C1/B1/

t

s/B1/A1/

t

}' input.dat

36

Page 38: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

Appendix A

ð à Ý regular expression

1) û ; C - : ã û ; C - X à W Ý regular expression Í � L � æ C �

C « � L 8 ! �

2) ^C � : § × C � Ä 6 � ¨ y � ´ �

3) $C � : § × C � Ä 6 � ¨ y � � �

4) . : � î � � × C - �

5) [...] : C - / ) , à | � î Ë � À r X b C - � Ý � × Í ,A

[^...]� î Ë � À r X b C - | ² Ý C - �

6) - : C - / ) � � à "-"¼ � C - Ý P � �

7) * : à | � � Í G Ý C - (T C - / ) )� ¥ « � � 9 g �

8) \n : � î ¶ á ± � C - (imbedded new line character)�

9) \(...\) : y regular expression � ¸ à "\(""\)" ¼ À � × I Ý

regular expression ; Í ¡ � à "\1"¼ � î Ï × Í � "\("\)"À � Ý I

� u regular expression � ¸ à ó g Ý "\(""\)"¼ À � � ! Ý I

, J µ g ¸ à "\1","\2","\3",...(t 9 � Õ "\9")�

¨ ² � ! ¿ ¬ î | regular expression1� î sed _ ì ¼ � / address ` º b × °

� ! Ý § × , � Þ � µ ¢ ï appendix B�

1� ¢ ï ASPAC Z � "Regular Expression Introduction"

37

Page 39: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

Appendix B

HP-UX Release 9.01 �SunOS 5.4 / sed E regular

expression � & Ë © � C - Ý #å � æ

regular expression Ý © � C - HP-UX Release 9.01 SunOS 5.4

. # å # å

* # å # å

^ # å # å

$ # å # å

\ # å # å

[ ] # å # å

\( \) � \1 ... \9 ) à # å # å

\{¥ � g ó \} # å # å

\{ì § ,î § \} # å # å

\ì § ,\} # å # å

\< \> � # å # å

+ � # å � # å

? � # å � # å

| � # å � # å

( ) � # å � # å

& # å # å

38

Page 40: ASP - read.pudn.comread.pudn.com/downloads125/ebook/530973/ASPAC-SED.pdf · ASP A C i Ì J Î ASP A C Ac ademia Sinica P Ck age Î ³ @ ~ o Õ T n y \ 8 ̸ à" (Soft w are T ools)

Bibliography

[1] Lee E.McMahon. SED - A Non-interactive Text Editor , AT&T Bell

Laboratories Murray Hill,New Jersey 07947.

[2] Dale Dougherty. sed & awk , O'Reilly & Associates , Inc.1990.

[3] SunOs5.1 Editing Text Files , Sun Microsystem,Inc.1992.

[4] HP 9000 computers { Text Processing : User Guide ,Hewlett-Packard

Company.1991.

[5] f � ¼ . � � _ ì Z � Ý � Ì - SED � + .� ³ @ ~ o � Õ � T ; G 12à Ï 2

� .

[6] Regular Expression Introduction. � ³ @ ~ o � Õ � T ASPAC � �

94019.1995

39