Steve Mansour sman@scruznet.com Neo Lee neo.lee@gmail.com ...
Steve Mansour sman@scruznet.com Neo Lee neo.lee@gmail.com ...
Steve Mansour sman@scruznet.com Neo Lee neo.lee@gmail.com ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
մ៨᧷ਭϥᩈơA Tao of Regular ExpressionsƢ<br />
file:///home/eagle/book/Linux/script/tao_regexps_zh.html<br />
մ៨᧷ਭϥᩈ<br />
ؑᛀƳ<strong>Steve</strong> <strong>Mansour</strong><br />
<strong>sman@scruznet</strong>.<strong>com</strong><br />
Revised: June 5, 1999<br />
(copied by jm /at/ jmason.org from http://www.scruz.net/%7esman/regexp.htm, after the original disappeared! )<br />
ᓟᢈƳ<strong>Neo</strong> <strong>Lee</strong><br />
<strong>neo</strong>.<strong>lee@gmail</strong>.<strong>com</strong><br />
2004৯10ഢ16ೃ<br />
ᘫಞႝؑಞ<br />
ᢈᓥைƳؑಞݿϛ৯кϡᨇƥಞϔ࠰᭔ఉೇী᧼ഭơϜᠳԟЃviˉsedᎋষԣሇЫᐾڔୡƢƥലᢈ<br />
ؿലၯؑಞርᢈƥஷ߰мඇሷκᱤ᭔ఉሇؑಞˊᰑϥظ᱇ේඇᨅЌ᭔ఉಞϔীयᏚ᭔ఉոᰑƥ<br />
Mansorᔌᐄƥၦƥ ϔണǼᢈᓥைǽሇ᪇թᢈᓥ៧Ԋሇᢪˊണऑಲᱤሇᯅርఉڔ<strong>Steve</strong><br />
ѼسԵϔಞƥϴظмڔᔌᐄˊ<br />
ሩ <br />
Сϣմ៨᧷ਭ<br />
ᘲҐ<br />
תᎢ<br />
ϔᐜơድࡆሇژᢣƢ<br />
Ƣથᡩሇᣳੋಞظơνᰯޅ<br />
νٌষԣϔሇմ៨᧷ਭ<br />
Сϣմ៨᧷ਭ<br />
δϑմ៨᧷ਭƥीᅶൺጕาਭؚיδᏚϖሇδϑԚਭˊ࠰Оݿϛ࣯рሷκؚຈ᧔خભᓨς<br />
ᨅδဿƥν᧼ƥᑀ᧼δဿဿᐴϵϥَीਥبಅ࠲мνಕؚҋᅶǸǸνৱƥᨅᎺಞ፣ϴνᕜࠪ<br />
ᠽ੧ᨅЌࠪሇ៨᧷ਭԢँԵ᥎ൌᨄሮᎢתሇƥᓨςƥδೄѼଲ࣯рƥѼीᕜಚल᧪ᘨᓨς<br />
᭯ሇಞലࠨᄮষѸ؊ᒓޗՔթơᅲᖭՔƢࣶୄˊմ៨᧷ਭهጕಞലᒁ᧡ᧁхˉᏚơҐ<br />
Rogue Waveሇtools.h++Ƣˉᕫലষԣơӵawk/grep/sedƢ৶༂ሇƥᓨςӵMicrosoftሇVisual C++ᨅ<br />
ጕБІਭIDEϴਥ࣯Ͻˊ<br />
߰Ѓviϔሇಞലഠ௮᪇թሇҐ࠵ൌᡊմ៨᧷ਭሇᅶƥᑍλሇ፣ᗩϔջᅶδЌҐޗрय<br />
sedˉawkˉperlޗмظƥԢϔሇญઍሇҐ߉лൌϷԵሇƥν᧼࣯рຈ᧔Ԥڎgrepಞхᐇڔлڎ<br />
ޗмሷሷνٌষԣϔሇմ៨᧷ਭᨅδᗩƥԢϔണδЌظԢвմ៨᧷ਭሇᒁጫᢣᡐϔҋᅶˊѼڔ<br />
ռሇষԣϔҋᅶմ៨᧷ਭሇҐˊᨄണδϑԟЃviϔಞലഠ௮ڎлơsƢሇᎢתᢪᰁޗಞَҖᓣˊ<br />
մ៨᧷ਭ߰ኦ<br />
մ៨᧷ਭᅽδЌᨭڔδЌԈơ metacharactersƢᐵୄˊᨭׇஷ࠵लԵሇຄڔಚƥ<br />
ᓨԈմԣണႯሇ٢ϤƥрλᱤѕᑉϾᡊˊ<br />
ƥմ៨᧷ਭ"testing"ϔണׇሇ૮Ճλƥδϑմ៨᧷ਭሷκؚीδϑᨭሇඇϖˊҐתഡᎢޗ<br />
ˊ""Testingיϖƥѫνᕜ123testing"ᎋ"ڔ""testingיмظƥƥ࣯٢чѲԈ<br />
ᠳሻሇᅶ࡛մ៨᧷ਭƥኵሇᄮᡊԈഡᠳሇЀ૮ˊλ៨ղϽണሇԈڔन࣯рሇ<br />
δϑᎢቾሇఞᨕˊ<br />
1 of 7 2004৯12ഢ08ೃ 09:31
մ៨᧷ਭϥᩈơA Tao of Regular ExpressionsƢ<br />
file:///home/eagle/book/Linux/script/tao_regexps_zh.html<br />
Ԉ ఞᨕ<br />
tƥѫνיrootˊ ϖƳratˉrutˉrᨅЌיմ៨᧷ਭr.tˊҐϑתчѲי .<br />
ϖ"He'sי࠲ᕜ a weasel"ሇറैƥѫνᕜ $մ៨᧷ਭweaselᑄˊҐי $<br />
weasels."ˊ ϖ"Theyי are a bunch of<br />
ϖ"Whenי࠲inᕜ in the course of human մ៨᧷ਭ^WhenҐˊδሇਥי ^<br />
events"ሇਥƥѫνᕜי"What and When in the"ˊ<br />
чଐಚሇчѲי࠲ᕜڇմ៨᧷ਭ.*ଐˊҐϥ֏ሇᩤϑ࣯ޗϑ࡛࠰0ୈי *<br />
ˊ<br />
\ ᨅਰᅶਇƥᅶൌयᨅղሇᨅЌԈѸᨭሇൌᨆיˊҐմ៨᧷ਭ\$<br />
ƥᓨνчѲဿיƥᓨνैƥᏚѨሇƥմ៨᧷ਭ\.ᅶൌؿᒼԈיᅶൌ<br />
ሇᨭˊ<br />
[ ]<br />
[c1-c2]<br />
[^c1-c2]<br />
ظˊretיrutƥѫνڔratˉrotיմ៨᧷ਭr[aou]tˊҐϔሇчѲδϑؿஷי<br />
ƴчѲಚיмظ[մ៨᧷ਭ[0-9ᯋƥҐךሇ-ൌெࣽϔҋᅶᨉؿஷޗм<br />
ᨄظмցࣽ࠰ϑךᯋƥҐմ៨᧷ਭ[A-Za-z]ظмיчѲ࠵लԵຄˊذδϑᠳሇᅶ<br />
ǼఃᰑǽƥᠳיᰑϽ ெࣽךᯋϥሇǸǸϴीᣈሇ៧ᰴǸǸޗস᧵ሇஷ<br />
Ե࠵ണڔᰑϽ2ˉ6ˉ9יय [մ៨᧷ਭ[^269A-ZƥҐ^ϥᯋҋᅶᎁδϑڔؿ<br />
ˊሇчѲຄϥ<br />
ϖ"forי࠲մ៨᧷ਭ\ƢˊҐڔơ\ \<<br />
wise"ϔሇ"the"ƥѫνᕜיϖ"otherwise"ϔሇ"the"ˊ༉ଐƳᨅϑԈνണሇ<br />
ᧁхሇˊ<br />
\( \) य \( ڔ \) ϥᯋሇ៨᧷ਭࣽϤϛǼᐵǽơgroupƢƥৰςयיᨅϑ៨᧷ਭሇұտδϑ<br />
мᅶظ9ϑƢƥ࣯рмұظ࠰ơδϑմ៨᧷ਭϔഡߨךϗ \1 տ\9 ሇؿൌਰᅶˊ<br />
| यύϑיോхᨆᨼ᧡ǼୈǽơOrƢ᧿ᎨˊҐմ៨᧷ਭ(him|her) "itי belongs to<br />
him"ڔ"it belongs to her"ƥѫνᕜי"it belongs to them."ˊ༉ଐƳᨅϑԈνണሇ<br />
ᧁхሇˊ<br />
9ˉ99ˉ999ᎋˊ༉ଐƳᨅϑי+մ៨᧷ਭ9ˊҐϥ֏ሇᩤϑ࣯ޗϑ࡛࠰1ୈי +<br />
Ԉνണሇᧁхሇˊ<br />
ˊνണሇᧁхሇˊ༉ଐƳᨅϑԈϥ֏ሇᩤϑ࣯ޗ0ୈ1ϑ࡛י ?<br />
\{i\}<br />
\{i,j\}<br />
{\մ៨᧷ਭA[0-9]\{3ϥ֏ሇ៨᧷ਭࣽϤሇˊҐ࣯ޗƥᨅЌெࣽಚሩሇי<br />
יA123ˉA348ᎋƥѫνሇϖƥҐ"A"َᱤ࡛3ϑಚי࠲ᕜ<br />
A1234ˊᓨմ៨᧷ਭ[0-9]\{4,6\} ˊ༉ଐƳᨅϑᨉᑛሇчଐ4ϑˉ5ϑୈᓥ6ϑಚי<br />
Ԉνണሇᧁхሇˊ<br />
ơ༉ଐνׇஷಱƢˊәࣽണϑಞхtest.txtׇ٢мλϑתчѲי࠲ဿƥ࣯ᕜሇԈתഡᎢ<br />
ՔऑƳ<br />
he is a rat<br />
he is in a rut<br />
the food is Rotten<br />
I like root beer<br />
рظмҋᅶgrepڎлൌ༻ᢌрሇմ៨᧷ਭƥgrepڎлҋᅶմ៨᧷ਭؚऺᢌיெࣽಞхሇδ<br />
лڎˊ៨᧷ਭሇണ೪ዥൌיࠨƥৰयᖭळണδ<br />
grep r.t test.txt<br />
δϑrఉчѲיሇˊմ៨᧷ਭr.tי᧢test.txtಞхϔሇδϔᐇմ៨᧷ਭr.tƥৰ୧ޗ<br />
δϑఉδϑtˊм࣯यיಞхϔሇratڔrutƥᓨνᕜיRottenϔሇRotƥݿϛմ៨᧷ਭ<br />
[Ƣˊմ៨᧷ਭ[RrؿơಲஷᯋԈךຄƥਁᢜҋᅶलԵڔԵ࠵יलԵଓሇˊᠳٌ࠵<br />
ఉδϑtीᠳҋᅶᨅϑԵୈᓥलԵሇrఉчѲδϑ࠵δϑיrˊмƥᠳڔRיٌ࠲ᕜ<br />
៨᧷ਭƳ[Rr].tˊ<br />
2 of 7 2004৯12ഢ08ೃ 09:31
մ៨᧷ਭϥᩈơA Tao of Regular ExpressionsƢ<br />
file:///home/eagle/book/Linux/script/tao_regexps_zh.html<br />
ᠳי᳨ሇᠳҋᅶୱơ^ƢǸǸ؞ϴشӟఠԗˊҐƥտtext.txtϔ᳨"he"୧<br />
יسᎁιሇtheƥмᠳҋᅶմ៨᧷ਭ^heƥ࣯י៨᧷ਭheƥѫᨅѕתᕜѕԌᅶᎢظሇƥѼ࠽<br />
ޗ᳨ᄕሇhˊ<br />
ണӈெࣽǼᰑϽĆĆĆיǽѕຈ᧔ऑ᧷տሩሇƥୱơ^Ƣᄕޗಲஷؿϔƥ࣯៨ዥ<br />
ǼఃᰑǽƥҐᠳיhe ƥѫఃᰑ֏ᱤt or sሇ૮પơϴीtheڔsheƢƥظмҋᅶƳ[^st]heˊ<br />
लԵሇƴڔԵ࠵ຄƥׇஷчѲי[մ៨᧷ਭ[A-Za-zᯋˊҐךϑ࠰ൌெࣽؿмҋᅶಲஷظ<br />
մ៨᧷ਭ[A-Za-z][A-Za-z]* мظԵୈᓥलԵƢˊၦрϴ࠵ຄơϑ࠰ຄَᱤఉ0ୈᓥδϑי<br />
ᅶԈ+ӟտٌඥሇЀ૮ƥϴीƳ[A-Za-z]+ ƥڔ[A-Za-z][A-Za-z]*ࣶԘᎋцˊѫᠳ༉ଐԈ+<br />
ৰνണմ៨᧷ਭሇጫሇˊԟЃᨅδဿظмᓣَᱤሇմ៨᧷ਭᢣ૮Ճˊ<br />
1000ሇँҐڔണ100יಧൊൌᦾϤƢˊأơ༉ଐҋᅶؿஷ࠵ƥᠳҋᅶיᠳெࣽႯࣽಚሇ<br />
ᨅϑޗˊ1َᱤ2ୈᓥ3ϑ0ሇาਭಚיмҋᅶƳ10\{2,3\}ƥᨅϑմ៨᧷ਭظ10000ƥڔᓨఃᰑ10<br />
{\,մ៨᧷ਭ0\{3ƥҐઐᆒᎁЁϑಚبሇҋᅶϔδϑണᅶሇԈ यיᖭळ3ϑᨉᑛሇ0ˊ<br />
ሇҐתᎢ<br />
ˊሇҐתᨅണδЌണк៨પሇˉຈ᧔Ꭲ<br />
vi лڎ<br />
Ѹᅶ<br />
:%s/ */ /g<br />
:%s/ *$//<br />
:%s/^/ /<br />
:%s/^[0-9][0-9]* //<br />
:%s/b[aeio]g/bug/g<br />
δϑୈᓥ࠰ϑፄඨഠ௮ϛδϑፄඨˊ<br />
ؚैሇണፄඨˊ<br />
ˊκ֨ԗδϑፄඨ࠽δޗ<br />
ˊ᳨ሇണಚؚ<br />
यണሇbagˉbegˉbigڔbogಅϛbugˊ<br />
:%s/t\([aou]\)g/h\1t/g यണtagˉtogڔtugթռಅϛhatˉhotڔhugơ༉ଐᅶgroupሇᅶڔҋᅶ\1ਰ<br />
ᅶ֏ᱤיሇƢˊ<br />
ϔᐜሇҐơድࡆሇژᢣƢ<br />
Ґ1<br />
यണಲfoo(a,b,c)ሇँҐಅϛfoo(b,a,c)ˊᨅaˉbڔcظмчѲటҖᑉಲfoo()ሇಚˊϴीᢪ<br />
рᠳँᄕᨅඥሇᦾ௮Ƴ<br />
ϥ֏ ϥَ<br />
foo(10,7,2)<br />
foo(x+13,y-2,10)<br />
foo(7,10,2)<br />
foo(y-2,x+13,10)<br />
foo( bar(8), x+y+z, 5) foo( x+y+z, bar(8), 5)<br />
ᄕᨅδᵏƳँ࠲лᕜڎλᱤᨅോഠ௮<br />
:%s/foo(\([^,]*\),\([^,]*\),\([^)]*\))/foo(\2,\1,\3)/g<br />
ಚሇѬϔሇιϑؿሇஷ࣯ڔ()ᡥр࣯୧ಖൌ֨мթˊԵᨅϑ៨᧷ਭሇ߰ലથfooޗᄕ<br />
ᒳˊᎁδϑಚᅶᨅϑ៨᧷ਭൌռሇƳƳ\([^,]*\)ƥрظмЭّൌթ࣯Ƴ<br />
[^,] ᰑϽᨬؿϥሇчѲ<br />
[^,]*<br />
\([^,]*\)<br />
ؿϑᱡᨬ࠰0ୈᓥ<br />
ϥَሇഠ௮าਭ៨᧷ਭϔਰᅶ࣯ޗмظඓᡫϛ\1ƥᨅඥؿयᨅЌᱡᨬ<br />
3 of 7 2004৯12ഢ08ೃ 09:31
մ៨᧷ਭϥᩈơA Tao of Regular ExpressionsƢ<br />
file:///home/eagle/book/Linux/script/tao_regexps_zh.html<br />
,(\*[,^])\ ᩤ᪇թᠳඓᡫൌмؿƥৰςᱡᨬؿَᱤδϑᨬؿϑᱡᨬ࠰рտ0ୈᓥ<br />
َࠩᅶˊ<br />
ᄕޗெδϑҋᅶմ៨᧷ਭয়ᠶ᭯ᢥሇഡ҅സˊϛСϣрᠳҋᅶ[^,]*ᨅඥሇδϑ៨᧷ਭƥᓨ<br />
νഛ֨ᎢתርఉሇԵƥҐƳ.*ƥൌיᎁδϑಚځƸᡷрҋᅶาਭ.*ൌי<br />
ϖ"10,7,2"ƥ࣯ਁᢜי"10,"ᨄ"10,7,"ƸϛϽᡊՂᨅϑύϤપơambiguityƢƥմ៨᧷ਭᠸࣽδைၯ<br />
ഡᮿሇϖൌƥޗκᱤሇҐϔी"10,7,"ƥ೪ၦᨅඥीϽύϑಚᓨνрഭഫሇδϑˊмƥ<br />
рᠳҋᅶ[^,]*ൌਿցئᎁδϑᨬؿϥ֏ሇ᪇թˊ<br />
ᨅϑ៨᧷ਭрীᑀթտϽƳfoo(\([^,]*\)ƥᨅδظмᎢתሇᓟᢈϛǼѼտfoo(ीԢَርտᎁ<br />
δϑᨬؿϥ֏ሇ᪇թඓᡫϛ\1ǽˊၦَрҋᅶٌඥሇ֦ඓᡫᎁЁϑಚϛ\2ˊनᎁιϑಚሇඓᡫ<br />
ಲϴδඥƥسрᠳᐇണሇርտؼஷؿˊрৰണᠳؚᐇᎁιϑಚƥݿϛр<br />
()fooޗಚሇfoo()ಲᢹᅶƥഠ௮ᩤЌണιϑؚسұр࠲ν᱇ᠳᢹಜ࣯ሇѬᒳƥѫᨅඥሇาਭᕜ<br />
δϑơoveroadingƢಲᨅጕኵሇาਭਖ਼ਖ਼ຈ᧔ұᰔሇˊၦَƥޗഠ௮᪇թƥрտfoo<br />
()ሇनਁँҐƥၦَջᅶඓᡫ࡛ሇ᪇թᨆഠ௮ƥሇᎁδڔᎁЁϑಚБ௮Ѭᒳˊ<br />
Ґ2<br />
әᡷണδϑCSVơ<strong>com</strong>ma separated valueƢಞхƥᱤണδЌр᱇ᠳሇҴૉƥѫඨਭണᯅƥሩ֏<br />
ޗрৌഫᡬᨅЌಚ௳ಱᐵᐸƥмҤޗƥٍᒓԵƥᩨಈᒁኇƥᄕٍƥԚٍಚ௳ሇղƳ<br />
ϴीᢪƥрᠳᢹಜղˊٍƥٍᒓԵ-ᩨಈᒁኇƥԚٍрሇൺϑᧁхϔҋᅶƥ᱇ᠳሇඨਭϛƳ<br />
ڔᱤണчѲፄඨơׇஷፄඨَ֏ؿᨬاƥрሇᧁхνᕜఉذˊৰύϑղൌୄδϑಱղىƥᨄᠳ<br />
ց៨Ƣмрᨄᠳؚᨬؿ֏َሇണፄඨˊ<br />
ᨅണՔрᄕޗሇಚ௳Ƴ<br />
Bill Jones, HI-TEK Corporation , CA, 95011<br />
Sharon <strong>Lee</strong> Smith, Design Works Incorporated, CA, 95012<br />
B. Amos , Hill Street Cafe, CA, 95013<br />
Alexander Weatherworth, The Crafts Store, CA, 95014<br />
...<br />
Ƴᨅϑඥୄبрৌഫ࣯<br />
Bill Jones,CA 95011,HI-TEK Corporation<br />
Sharon <strong>Lee</strong> Smith,CA 95012,Design Works Incorporated<br />
B. Amos,CA 95013,Hill Street Cafe<br />
Alexander Weatherworth,CA 95014,The Crafts Store<br />
...<br />
ˊৰղƥᎁЁϑᅶൌؚፄඨىڔрयᅶύϑմ៨᧷ਭൌᡊՂᨅϑᯅˊᎁδϑጥ֬ղ<br />
λᱤीᎁδϑഠ௮ڎлƳ<br />
:%s/\([^,]*\),\([^,]*\),\([^,]*\),\(.*\)/\1,\3 \4,\2/<br />
ϥ֏ሇؿᎁδϑᨬƳ\([^,]*\)ƥיƢᅶᨅϑ៨᧷ਭൌٍᨅሇಲҐ1߰ലδඥƥᎁδϑղơ<br />
3ƥᓨഡَδϑ\ڔᅶٌඥሇಲඓᡫϛ\2ٍᒓԵڔٍऑᅶ\1ඓᡫλൌˊԚٍƥᓨണ<br />
ᅶ\(.*\)ൌיơ"יണርտറ"Ƣˊഠ௮᪇թմਰᅶκᱤඓᡫሇᩤЌऑൌᨆᨲˊ<br />
λᱤᨅϑഠ௮ڎлմᅶൌؚᰑፄඨƳ<br />
:%s/[ \t]*,[ \t]*/,/g<br />
рᨄթᡊൌሷƳ[ \t]יፄඨ/ց៨ƥ[ \t]* ]ϑፄඨ/ց៨ƥ࠰0ୈי \t]*,י0ୈ࠰ϑፄඨ/ց៨<br />
َᱤ֨δϑᨬؿƥഡَƥ[ \t]*,[ \t]*י0ୈ࠰ϑፄඨ/ց៨ఉδϑᨬؿఉ0ୈ࠰ϑፄඨ/ց៨<br />
ᨢሇgظᨅрҋᅶϽᑄैሇˊؿሇрտሇണωᠲഠ௮ୄδϑᨬתഠ௮᪇թƥрᎢޗˊ<br />
ಚƥᨅ៨ዥޗϔनണיሇϖ୭ഠ௮ơᓨνᒢሲሇسഠ௮ᎁδϑיϖƢˊ<br />
Ґ3<br />
4 of 7 2004৯12ഢ08ೃ 09:31
մ៨᧷ਭϥᩈơA Tao of Regular ExpressionsƢ<br />
file:///home/eagle/book/Linux/script/tao_regexps_zh.html<br />
ƳሇႜಯࠪᄕƥҐ࠰әᡷണδϑ<br />
Billy tried really hard<br />
Sally tried really really hard<br />
Timmy tried really really really hard<br />
Johnny tried really really really really hard<br />
ᓨѼ"really"ˉ"really really"ƥмؠчଐಚᨉᑛᄕሇ"really"ϖ௮ୄδϑᎢתሇ"very"ơsimple<br />
is good!ƢƥᩤϣмλڎлƳ<br />
:%s/\(really \)\(really \)*/very /<br />
Ƴୄبीѕκᨕሇಞല<br />
Billy tried very hard<br />
Sally tried very hard<br />
Timmy tried very hard<br />
Johnny tried very hard<br />
࠰1ϑୈי \)* \)\(really ϑᨉᑛሇ"really࠰0ୈי*(\ "ơ༉ଐᑄैണϑፄඨƢƥᓨ\(really ៨᧷ਭ\(really<br />
ϑᨉᑛሇ"really "ँҐˊ<br />
ƢથᡩሇᣳੋಞظơνሇҐᰯޅ<br />
Coming soon.<br />
νٌষԣϔሇմ៨᧷ਭ<br />
OKƥѼীᑀՋࠩҋᅶREơregular expressionsƥմ៨᧷ਭƢƥѫѼৰՋࠩҋᅶviˊмƥޗᨅр<br />
ךᄕሇؤᕜظνٌጫϥᯋҋᅶREޗƥᨄѕᑄδλѼذˊԢвষԣϔҋᅶREሇҐޗᑉδЌ<br />
ռˊ<br />
ၦƥѼϴظмޗVisual C++ᒁ᧡ݥϔҋᅶREˊᨢஶEdit->Replaceƥၦَᨢஶ"Regular expression"ᨢஶ<br />
නƥFind What᧢ԗනनਁκᱤЫᐾሇviڎл:%s/pat1/pat2/gϔሇpat1᪇թƥᓨReplace᧢ԗනनਁpat2᪇<br />
gᨢƥѼᠳҋᅶReplaceڔއթˊѫƥϛϽ੧տviሇ୭ᘲ AllୈᓥሇୡষFind Next and Replace<br />
ơᢈᓥைƳቹᩈϛ۾ണОᴃ੯ᧁംϽٟƥᝇၦVCϔظмᨢϔδϑᘲއሇಞലƥၦَޗԢϔ୭ഠ௮ƥ<br />
ѫϥν࠲viᩤϣဤ༰ڔԤᰳƢˊ<br />
sed<br />
SedStream EDitorሇᒓԵƥUnixλয়ᅶሇ߰ЃಞхڔᎫᩈሇᒁ᧡ষԣƥظмޗୡϔ੧տԟЃsedሇ<br />
ᢝᐷҴૉˊ<br />
ಞྶبӟprice.txtሇಞхˊ༉ଐᨅЌᒁ᧡ৰνѕಅشᄮδϑࠨޗᨅδЌണᥗሇsedᕫലƥәࣽр<br />
хƥsedسࠨᄮྶಞхሇδৰᑄ೪ዥޗඓՋ᧢ϔơၦऑҋᅶّࣽൌࣽցƢƳ<br />
sedᕫല ఞᨕ<br />
sed 's/^$/d' price.txt<br />
sed 's/^[ \t]*$/d' price.txt<br />
sed 's/"//g' price.txt<br />
ոᰑണፄ<br />
٢ፄඨୈᓥց៨ሇׇسոᰑണ<br />
ؿոᰑണਰ<br />
awk<br />
ୡϔ੧տԟЃawkሇᢝᐷҴޗмظˊᄮࠨڔмᅶൌनಞലಚ௳ᨆࠪሇթظawkδጕᒁጫᢣᡐƥ<br />
5 of 7 2004৯12ഢ08ೃ 09:31
մ៨᧷ਭϥᩈơA Tao of Regular ExpressionsƢ<br />
file:///home/eagle/book/Linux/script/tao_regexps_zh.html<br />
ૉˊᨅϑخભሇٍ࣯ѸᓥрሇሇᒓԵơAhoƥWeinbergerڔKernighanƢˊ<br />
Languageϔണ࠰࡛ሇawkሇҐƥν KernighanሇϷTheڔAhoƥWeinbergerޗ AWK Programming<br />
ᠳᡥλᱤᨅЌ੯νᥙᩈሇᕫലҐᰊցѼनawkਿ࠵ᕜ֤ሇᄮᡊˊрٌඥәࣽрनprice.txtಞхᨆ<br />
ࠨᄮƥsedδඥƥawkϴسᑄ೪ዥޗᐹ፨κˊ<br />
awkᕫല ఞᨕ<br />
awk '$0 !~ /^$/' price.txt<br />
awk 'NF > 0' price.txt<br />
awk '$2 ~ /^[JT]/ {print $3}' price.txt<br />
awk '$2 !~ /[Mm]isc/ {print $3 + $4}' price.txt<br />
awk '$3 !~ /^[0-9]+\.[0-9]*$/ {print $0}'<br />
price.txt<br />
awk '$2 ~ /John|Fred/ {print $0}' price.txt<br />
ոᰑണፄ<br />
awkϔδϑഛ࡛ሇոᰑണሇ֦<br />
ሇϔሇᎁιϑ࠽'J'ୈᓥ'T'୧ണᎁЁϑ୧<br />
<br />
νׇ٢'Misc'ୈᓥ'misc'ሇƥ୧नണᎁЁϑ<br />
Ƣơәࣽϛಚڔᎁ4ղሇڔᎁ3<br />
୧ണᎁιϑνಚሇƥᨅಚெd.d<br />
ୈᓥdᨅඥሇੋਭƥԢϔd0տ9ሇчѲಚ<br />
ಜׇ٢'John'ୈᓥ'Fred'մ୧ᎁЁϑ<br />
grep<br />
grepδϑᅶൌޗδϑୈᓥ࠰ϑಞхୈᓥ᧢ԗ༴ϔҋᅶREᨆඇሇጫˊ࣯ሇnameᒁጫᢣᡐظмᅶൌ<br />
नಞхڔᎫᩈᨆࠨᄮˊظмޗୡϔ੧տԟЃgrepሇࣶಜҴૉˊᨅϑٌඥخભሇٍൌྶЃviሇδ<br />
ϑڎлƥg/re/pƥଐથglobal regular expression printˊ<br />
ƥၦٍَƥၦؿδϑᨬ֨ಞхphone.txtϔׇ٢мλሇಞലƥǸǸԢඨਭޗϔрәࣽλᱤሇҐ<br />
َδϑց៨ƥၦَᆀᢔؿኇƳ<br />
Francis, John 5-3871<br />
Wong, Fred 4-4123<br />
Jones, Thomas 1-4122<br />
Salazar, Richard 5-2522<br />
grepڎл ఞᨕ<br />
grep '\t5-...1' phone.txt<br />
grep '^S[^ ]* R' phone.txt<br />
grep '^[JW]' phone.txt<br />
grep ', ....\t' phone.txt<br />
grep -v '^[JW]' phone.txt<br />
grep '^[M-Z]' phone.txt<br />
grep '^[M-Z].*[12]' phone.txt<br />
ണᆀᢔؿኇм5ਥ࠽м1ᑄሇ୧ൌƥ༉ଐց៨ᅶ\t៨ዥ<br />
ሇ<br />
ሇ࠽мR୧ٍڔ࠽мS୧ണ୧<br />
୧ണਥ࠽JୈᓥWሇ<br />
୧ണ4ϑሇƥ༉ଐց៨ᅶ\t៨ዥሇ<br />
୧ണνмJୈᓥWਥ࠽ሇ<br />
୧ണሇਥ࠽MտZϥᯋчδሇ<br />
ኇᑄै1ୈᓥ2ؿؿƥৰςဿMտZϥᯋчδ࠽ሇਥണ୧<br />
ሇ<br />
egrep<br />
ಞхޗϔрәࣽˊλᱤሇҐሇԈ࠰ሇմ៨᧷ਭϔഛ࣯ޗegrepgrepሇδϑ୮ॖႝലƥ࣯<br />
ƥၦٍَƥၦَδϑց៨ƥၦَᆀᢔؿδϑᨬ֨phone.txtϔׇ٢мλሇಞലƥǸǸԢඨਭ<br />
ኇƳؿ<br />
Francis, John 5-3871<br />
Wong, Fred 4-4123<br />
Jones, Thomas 1-4122<br />
Salazar, Richard 5-2522<br />
6 of 7 2004৯12ഢ08ೃ 09:31
մ៨᧷ਭϥᩈơA Tao of Regular ExpressionsƢ<br />
file:///home/eagle/book/Linux/script/tao_regexps_zh.html<br />
egrep <strong>com</strong>mand Description<br />
egrep '(John|Fred)' phone.txt<br />
egrep 'John|22$|^W' phone.txt<br />
egrep 'net(work)?s' report.txt<br />
JohnୈᓥFredሇണׇ٢ٍ୧<br />
୧ണׇ٢John ୈᓥм22ᑄୈᓥмWሇ<br />
Эreport.txtϔտണׇ٢networksୈᓥnetsሇ<br />
մ៨᧷ਭᢣ૮Ճ<br />
. ࠏлୈᄔڎ<br />
^ ] [ $ ? \} \{ \) \( + | ) ( vi X X X X X<br />
Visual C++ X X X X X<br />
awk X X X X X X X X<br />
sed X X X X X X<br />
Tcl X X X X X X X X X<br />
ex X X X X X X<br />
grep X X X X X X<br />
egrep X X X X X X X X X<br />
fgrep X X X X X<br />
perl X X X X X X X X X<br />
viഠ௮ڎлᎢЫ<br />
Viሇഠ௮ڎлƳ<br />
Ԣϔ<br />
:ranges/pat1/pat2/g<br />
: ᨅViሇڎл୭ᆊᱤˊ<br />
range ڎл୭ᘲއሇெࣽƥظмҋᅶህթؿơ%Ƣ៨ዥണƥҋᅶဿơ.Ƣ៨ዥ֏ƥҋ<br />
10,20៨ዥᎁ10տ20ƥ.,$៨ዥ֏ƥҐؿмҋᅶظơ$Ƣ៨ዥഡَδˊѼᨄؿᅶᒼԈ<br />
տഡَδƥ.+2,$-5៨ዥ֏َύርտԘಞሇӅಚᎁЈƥᎋᎋˊ<br />
s ៨ዥԢَδϑഠ௮ڎлˊ<br />
ˊҐߴ࠵ᨅᠳඇሇδϑմ៨᧷ਭƥᨅᎺಞ፣ϔണδ pat1<br />
ˊҐߴ࠵ሇาਭሇմ៨᧷ਭƥᨅᎺಞ፣ϔണδୄبϖיᨅৌഫ pat2<br />
g יഠ௮ϔᎁδϑسሇϖᨆƥٞմմיᨢඓƥᨅϑඓ៨ዥഠ௮यनϔϑظ<br />
ϖˊ<br />
ᒧκണ࠰viሇޗᐰୡƥѼظмᯅврмᚊ੧ഛࣶ֨ಜሇҴૉˊ<br />
[տϜݽ]<br />
7 of 7 2004৯12ഢ08ೃ 09:31