Existe n num e rosos utilitarios con la capacidad de e ncontrar patrone s e spe cíficos e n un arch ivo abrie ndo o no e l arch ivo. Algunos de splie gan sólo e l patrón e ncontrado, m ie ntras q ue otros pue de n e fe ctuar cam bios al conte nido de l arch ivo. D os de e stos utilitarios son discutidos aq uí e n lo ade lante e llos son gre p y se d.
gre p
El com ando gre p (global re gular e xpre sion print) busca un patrón o cade na sim ple de caracte re s de ntro de l conte nido de un arch ivo. El no e fe ctúa cam bios al arch ivo sim ple m e nte de splie ga a pantalla cada líne a de l arch ivo q ue contie ne o iguala e l patrón de búsq ue da. La sintaxis de gre p e s:
H ay tre s com andos re lacionados 'gre p, e gre p, y fgre p' q ue pue de n se r usados para buscar e n arch ivos líne a por líne a. Las dife re ncias e ntre s e llos son m ínim as. El gre p pue de utilizar e xpre sione s re gulare s. El e gre p, utiliza e xpre sione s e xte ndidas, tie ne una sintaxis un poco dife re nte ; y fgre p utiliza cade nas de caracte re s sim ple s e n ve s de Expre sione s Re gulare s.
Los utilitarios e gre p y fgre p no son tan utilizados com o e s e l gre p; por e sta razón, gre p e s e l q ue cubrim os a fondo aq uí y tam bién e s e l q ue apare ce e n los e xám e ne s de ce rtificación. El uso m ás básico de gre p e s buscar una cade na sim ple de caracte re s e n un arch ivo, así com o:
gre p dom inicano arch ivo.txt
Esta se nte ncia arrojaría cada líne a de l arch ivo.txt q ue contie ne la palabra o cade na de caracte re s dom inicano, ya se a palabra única o e n com binación com o lo pue de se r dom inicanos- unidos.
H ay tre s opcione s im portante s q ue pue de n se r usadas para de finir com o gre p m ane ja patrone s de búsq ue das. Sólo pode m os usar una de e stas a la ve z. Si no usam os ninguna la por de fe cto e s, -G. Tabla 4.7 lista las opcione s y com o e llas afe ctan e l com portam ie nto de gre p. Ase gúre se q ue uste d e ntie nde la dife re ncias y com o usarlo. H ay tre s grande s variante s de gre p, controladas por las opcione s listadas e n la siguie nte tabla.
Table 4.7 O pcione s Principale s de gre p
O pción Acción
-G, --basíc-re ge xp Inte rpre ta patrón com o una e xpre sión re gular básica. (Por de fe cto) -E, --e xte nde d-re ge xp Inte rpre ta patrón com o una e xpre sión re gular e xte ndida
-F, --fixe d-strings Inte rpre ta patrón com o una lista de cade nas de caracte re s fijas, se paradas por saltos de líne a; se busca la concordancia de una cualq uie ra de e llas.
Ade m ás, e stán disponible s dos program as q ue son variante s de éste : e gre p y fgre p. El e gre p e s sim ilar (pe ro no idéntico) a gre p -E, y e s com patible con e l e gre p h istórico de Unix. El fgre p e s lo m ism o q ue gre p -F.
Para buscar caracte re s e spe ciale s, com o e spacios o tabulados, uste d ne ce sita e nce rrarlos e ntre com illas para pre ve nir q ue e l sh e ll inte rpre te e stos caracte re s e spe ciale s, así com o los e spacio e n e l siguie nte e je m plo:
gre p 'los dom inicano' arch ivo.txt
Sin las com illas, e ste com ando buscaría e l patrón “los” e n dos arch ivos dom inicanos y arch ivo.txt. Es m e jor acostum brarse al uso de las com illas cuando buscas patrone s, aunq ue com illas doble s trabajan, usar com illas se ncillas e s m ás re com e ndable .
Conse jos Prácticos
El com and o gre p b u sca u n patrón e n u n arch ivo. El e nvía la salid a d e las líne as q u e contie ne n e l patrón. Se pu e d e u sar e xpre sione s re gu lare s d e ntro d e l patrón d e b úsq u e d a, pe ro te nd rá q u e
Básicam e nte GNU Se gunda Edición Se pue de usar la opción -n para m ostrar e l núm e ro de la líne a e n la cual e l patrón ocurre . Esta opción funciona con los tre s com andos gre p, e gre p, y fgre p. Si sólo de se as sabe r e l núm e ro de líne as q ue contie ne n e l patrón de búsq ue da, use la opción -c. La salida no m ostrara cada líne a si no e l núm e ro corre spondie nte a las líne as. Si la búsq ue da se h izo e n varios arch ivos, se de sple gará un núm e ro de l total de ocurre ncias para cada arch ivo a de sple gar.
O casionalm e nte pue de q ue ne ce site de sple gar las líne as q ue no conte ngan cie rto te xto o frase . Esto pue de se r logrado con e l com ando gre p utilizando la opción -v. Cada líne a q ue no contie ne e l patrón se rá de sple gada. O tra m odificación q ue pode m os agre gar, para ilustrar. e s usando la opción - c, e sta opción de sple gará e l núm e ro de líne as q ue contie ne n su cade na de caracte re s.
Tam bién pue de s utilizar un arch ivo q ue conte nga los nom bre s de los arch ivos a buscar de ntro de su conte nido si usam os la opción -f se guida de l nom bre de l arch ivo q ue contie ne la lista de los arch ivos. Al usar una lista de sde un arch ivo, la acción por de fe cto de gre p e s listar los nom bre s de cada arch ivo com o cabe zal ante s de listar los re sultados. Este com portam ie nto pue de se r suprim ido utilizando la opción -h .
El gre p e je cuta búsq ue das caso se nsitivo, así pue s si buscas líne as q ue conte ngan linux no le re tornaría líne as q ue conte ngan Linux o LINUX. Para h ace r búsq ue das q ue no se an caso se nsitivas use la opción -i.
Cuando e l com ando gre p busca un patrón no le im porta si e l patrón se e ncue ntra com o una palabra com ple ta o parte de un patrón m ás grande . Si de se as e ncontrar sólo ocurre ncias donde e l patrón son palabras com ple tas de be rás utilizar la opción -w . Por e je m plo, digam os q ue buscas un arch ivo q ue e scribió la se m ana pasada y olvido su nom bre pe ro si sabe q ue contie ne “Siste m a O pe rativo Linux” pe ro no sabe e l nom bre de l arch ivo. En ve z de q ue gre p le de vue lva las líne as q ue contie ne n e l te xto podría h ace r q ue le re torne e l nom bre de l arch ivo, e sto se logra con la opción -l.
El com ando gre p de splie ga los e rrore s e nfre ntados si no se pue de le e r un arch ivo, dire ctorios o dispositivos. Pode m os suprim ir e sta salida de m e nsaje s de e rror con la opción -s.
se d
El se d (stre am e ditor) e s un e ditor de líne a no-inte ractivo. Aunq ue e s útil para proce sar te xtos m uy e xte ndidos, e s un poco críptico para los principiante s. Los com andos se le pasan a se d todos a la ve z, y e ntonce s se d proce sa e l o los arch ivos una líne a a la ve z.
Los com andos se ingre san norm alm e nte de sde la líne a de com ando, un program a o un arch ivo e scrito llam ado script. El com ando se d no cam bia e l arch ivo original, si no q ue lo copia, lo e dita, y o lo m anda a la salida e stándar (su pantalla) o guardarlo a otro arch ivo.
La sintaxis de se d e s:
se d [-n] [-e com andos] [-f nom b re -de -script] arch ivo.txt [> arch ivo.final.txt]
La opción -n pre vie ne a se d de e nviar e l arch ivo cam biado a la salida e stándar, e xce pto si e s instruido por la opción -p (print) flag, si e sta pre se nte .
La opción -e ale rta a se d q ue lo q ue sigue inm e diatam e nte son com andos. La opción -f nom bra e l arch ivo q ue contie ne los com andos se d.
El arch ivo.txt e s e l arch ivo de te xto q ue va a se r proce sado, y > arch ivo.final.txt le dice a se d q ue e scriba la salida a un arch ivo e spe cificado.
Un script de se d consiste de :
[dire cción[,dire cción]] instrucción [lista-argum e ntos]
La dire cción e s opcional y pue de se r e l núm e ro de una líne a ó un patrón. Se e spe cifican las líne as a la cuale s la instrucción va a se r aplicada. Si no se e spe cifica una dire cción, se d proce sa todas las líne as de l arch ivo de e ntrada. Si sólo una dire cción e s e spe cificada, todas las líne as q ue corre sponde n a la dire cción son proce sadas. D os dire ccione s de fine n un rango q ue se van a proce sar, iniciando e n la prim e ra dire cción y te rm inando e n la se gunda.
El com ando se d le e una líne a a la ve s. Si la líne a satisface la dire cción e spe cificada o no se prove e una, se d le e e l prim e r com ando de sde e l script o la líne a de com andos y la proce sa de bidam e nte . El utilitario se d e ntonce s le e e l próxim o com ando y lo aplica. Este proce so continúa h asta q ue todos los com ando h an sido proce sados. Entonce s se le e la próxim a líne a y e l proce so prosigue .
El se d pue de se r usado para buscar de ntro de un arch ivo por patrone s e im prim ir las líne as q ue contie ne n e l patrón e im prim irlo a la salida e stándar, sólo digite lo siguie nte :
se d /patrón/p arch ivo.txt
Com o se d de splie ga todas las líne as de l arch ivo e n pantalla por de fe cto, todas las líne as de l arch ivo se rán de sple gadas y e n adición la líne a q ue contie ne n e l patrón se rán de sple gada dos ve ce s por e l argum e nto p.
Si de se a de sple gar sólo las líne as q ue contie ne n e l patrón de búsq ue da de be rá utilizar la opción -n:
se d -n /patrón/p arch ivo.txt
Esta se nte ncia sólo im prim e las líne as q ue contie ne n e l patrón. Si uste d no usa la opción -n, todas las líne as se rán de sple gadas e n pantalla y las líne as q ue contie ne n e l patrón se rán de sple gadas dos ve ce s.
Tam bién se pue de de sple gar una parte de un arch ivo basado e n los núm e ros de sus líne as, así:
se d ‘2 q ’ arch ivo.txt
Conse jos Prácticos
El u tilitario se d e s u n e d itor d e líne a, pe ro re cu e rd e q u e su s cam b ios no son aplicad os al arch ivo original. La salid a d e e l son e nviad as a la salid a e stánd ar. Por d e fe cto, cad a líne a e s im pre sa e n pantalla au nq u e se le h ayan aplicad o cam b ios o no. El se d Tam b ién pu e d e tom ar e xpre sione s
Básicam e nte GNU Se gunda Edición Esta se nte ncia de splie ga las dos prim e ras líne as re pe tidas de ntro de l te xto de l arch ivo.txt. El argum e nto q e ntonce s causa q ue e l e ditor se d de je de ope rar inm e diatam e nte . Aunq ue las com illas no son ne ce sarias e n e ste caso, si lo son e n e l próxim o e je m plo. Si de se a ve r una porción de un arch ivo, uste d pue de e spe cificar un rango de líne as h a de sple gar:
se d -n ‘2,9 p’ arch ivo.txt
Esta se nte ncia de splie ga las líne as 2–9 y e ntonce s sale o q uit.
El se d e s un proce sador de te xto e xtre m adam e nte pote nte q ue pue de se r utilizado para h ace r otras tare as. Para una discusión m uch o m ás de tallada diríjase al Capítulo 8.