Download docx - Làm Quen Với SED

Transcript

Lm quen vi SED -StreamEDitorStream EDitor - sed - l mt trnh son tho khng tng tc c h tr trn rt nhiu h thng Unix/Linux. N thc hin thng dch mt script v thc hin cc action trong script . sed l mt tin ch dng lung (stream) bi cng ging nh nhiu chng trnh Unix khc, input s i t input stream ti chng trnh ri i ra standard output stream.Input c th n t mt file hoc ti t pipe hoc thm ch trc tip t standard input. Output ca sed c th i ti standard output hoc nh hng ti 1 file hoc ti mt pipe no .1. c trng v th mnh ca SED- chnh sa t ng mt hoc nhiu file- n gin ha cc thao tc chnh lp i lp li trn nhiu file- cho php vit cc chng trnh chuyn i hu dng2. Cch thc hot ng ca SEDSED lm vic trn tng dng trong file text do chu trnh x l ca n s nh sau:- mi dng c copy vo mt vng nh m "pattern space" ni s din ra cc thao tc x l- cc lnh chnh sa trong script c thc thi- cc lnh c x l trn tt c cc dng tr khi mt dng no khng tha mn- nu mt lnh thc hin thay i input, do cc lnh ch lm vic trn pattern space do d liu thc s s khng cn l ca input ban u- file input thc cht khng b thay i m cc thay i ch din ra trn mt bn sao ca n pattern space. Bn copy ny s gi ti standard output (mc nh)- sed cng s dng mt vng nh m ring "hold space" c kh nng lu d liu cho cc thao tc truy xut sau .3. C php dng lnhC php ca SED c th hai dng nh sau:sed [-n] [-e] 'command' file(s)sed [-n] -f script_file(s)Cc dng ny c th s dng phi hp vi nhau. Nu nh khng c file input no c ch nh th mc nh sed s c d liu t standard input.[-n] : ty chn ny ch nh sed khng hin th kt qu ra standard output nh mc nh. Trong trng hp c php th hai, ta c th t dng u tin c ni dung#ncng s cho kt qu tng t.4. C php cc lnh ca sedCc lnh SED c mt c php tng qut nh sau:[address[,address]][!]command [arguments]SED sao chp tng dng input file vo pattern space, ch th ca sed bao gm cc address ( address pattern) v cc cu lnh thao tc (command). Nu mt address khp vi mt dng no trong pattern space th lnh tng ng s c p dng.1. pattern addressing (nh v mu)Mt lnh sed c th ch nh 0, 1 hoc nhiu cc address. Address lm nhim v ch th v tr dng m cc lnh s c thc thi. Mt address c th l mt ch s dng, mt k hiu dng cui $ hay l mt biu thc chnh quy c bao gi trong cm /pattern/. Ngoi ra, k hiu \n c th khp vi bt k du xung dng no trong pattern space tr du xung dng cui pattern space.Nu pattern space cha ...Th lnh s c p dng cho ...

Khng cha patternp dng cho tng dng trong input

Cha 1 patternAp dng cho tng dng so khp c vi pattern. Mt s lnh ch chp nhn 1 pattern nha, i , r, q, =

Cha hai pattern cch nhau bng du phyBt u t dng u tin khp v tt c cc dng khp pattern u tin cho n dng khp pattern th hai

Mt pattern theo sau bi k t !Cc dng khng cha pattern

2. V d:CommandHnh ng c thc hin

s/xx/yy/gThay th ton b xx bi yy trong cc dng (g: global)

/BSD/dXa tt c cc dng c cha BSD

/^BEGIN/,/^END/pIn tt c ni dung nm gia BEGIN v END, tnh c hai mc ny

/SAVE/!dXa tt c cc dng khng cha t SAVE

/BEGIN/,/END/!s/xx/yy/gThay th tt c xx bi yy trn cc dngkhng nm trong on BEGIN ti END

Cp ngoc { } c th c dng nhng mt pattern vo trong mt pattern khc hoc dng p dng nhiu lnh ln mt mu khp vi pattern. Tuy nhin, cn ch rng, du m ngoc phi nm cui dng ca n v du ng ngoc phi nm c lp trn 1 dng v gia chng khng c khong trng. V d:

5. Nhm cc lnh c bn km minh ha s dng1. Nhm cc lnh chnh sa c bnLnhM tV d

a\Append, thm vo sau mt dng khp vi address

c\Thay th text (thng l mt khi text)

dXa cc dng

sThc hin cc php thay th (substitution)

2. Cc lnh lin quan ti thng tin ca dng vn bn hin thiLnhM tV d

=Hin th dng ang c

lHin th cc k t iu khin trong ASCII

pPrint - in dng ang c

3. Nhm cc lnh x l input/outputLnhM tV d

nB qua dng hin thi, chuyn ti dng tip theo

rc ni dung t mt file khc vo input stream

wGhi cc dng trong input vo mt file khc

qThot khi sed script, khng sinh thm output no na