this simple command line takes hours to finish...does anyone have a better solution?perl -e '$a="ATEH...GYS....I..CVNV...FGQ.....RTY.....F.YC.EY....G....D +....TE....RL...R..E....V.IA..SVG.E.L-.-.---..-----................... +...........................................................VPE.p-RTP. +Y.A..M.S..V.TPA.TK---------.......-........---TS........IYGY.GT.R.P.. +......VP.......D...LQCVSISNWSMAR.......................KI..GE.Y...L.. +LE...-....--..-.....-..--........--...R..GF.P....V..Y................ +..................................................................... +..............-...-.................................................. +....-.--....---EARV.D.P.L.TRL..V....IDR..RIT.T.............F......... +..GW.............CS........V.N.......RY..--.----.......-....-.--..... +.....................................................-............... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +................-.-.---DW.RH..Q.G...R....S..........ST...C.....D..... +IEV..D....CD.V.S...DL.V...A..V....P..D..DN.SW.-.......--..-P.L..YRC.. +L.S.F........DI.EC.....M..S..A.D......GG...---FPCAEKP...D.DIV........ +.I.QI..S.CV.CY.ET...G--.----..-Ggsadgaggvgvnggatpaptqshh............. +..................................................................... +........................gngesggipyypqaatagvgaqppVFG....R..SG..L...... +.H.....L......F.TI..GT.CDPVG--.....---..-.-...-..-.-----............. +...---.----...........................EADV..Y..EF--.P....SEY.EL.LLGFM +L.FFQRY.A..PSFMTGYNI.N...S..FDLKYILTR..L.E......Y..............L-.-.- +..-..-..--...Y..K........................L.DV.QR.F..C.KVPV..AQGG....R +FFLHSPT---..-...-LYrRH.Q.....D..RAS.FaaaA.A.NA..P..T.K............... +V.....Y........IS..G..CV.VVD.MY.PVCM....A....KT.--......N...SP.N.YK.L +N";if($a=~/(\S)[\.-]*(\S)[\.-]*(\S)[\.-]*(\S) +[\.-]*$/s){print "$1$2$3$4\n";}'
ok,i have a better solution,but why?...
perl -e '$a="ATEH...GYS....I..CVNV...FGQ.....RTY.....F.YC.EY....G....D +....TE....RL...R..E....V.IA..SVG.E.L-.-.---..-----................... +...........................................................VPE.p-RTP. +Y.A..M.S..V.TPA.TK---------.......-........---TS........IYGY.GT.R.P.. +......VP.......D...LQCVSISNWSMAR.......................KI..GE.Y...L.. +LE...-....--..-.....-..--........--...R..GF.P....V..Y................ +..................................................................... +..............-...-.................................................. +....-.--....---EARV.D.P.L.TRL..V....IDR..RIT.T.............F......... +..GW.............CS........V.N.......RY..--.----.......-....-.--..... +.....................................................-............... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +................-.-.---DW.RH..Q.G...R....S..........ST...C.....D..... +IEV..D....CD.V.S...DL.V...A..V....P..D..DN.SW.-.......--..-P.L..YRC.. +L.S.F........DI.EC.....M..S..A.D......GG...---FPCAEKP...D.DIV........ +.I.QI..S.CV.CY.ET...G--.----..-Ggsadgaggvgvnggatpaptqshh............. +..................................................................... +........................gngesggipyypqaatagvgaqppVFG....R..SG..L...... +.H.....L......F.TI..GT.CDPVG--.....---..-.-...-..-.-----............. +...---.----...........................EADV..Y..EF--.P....SEY.EL.LLGFM +L.FFQRY.A..PSFMTGYNI.N...S..FDLKYILTR..L.E......Y..............L-.-.- +..-..-..--...Y..K........................L.DV.QR.F..C.KVPV..AQGG....R +FFLHSPT---..-...-LYrRH.Q.....D..RAS.FaaaA.A.NA..P..T.K............... +V.....Y........IS..G..CV.VVD.MY.PVCM....A....KT.--......N...SP.N.YK.L +N";if($a=~/.*(\w)[\.-]*(\w)[\.-]*(\w)[\.-]*(\ +w)[\.-]*/s){print "$1$2$3$4\n";}'
In reply to why this regular expression is so slow? by fnever
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |