Re: Filtrar comodins/regex de les línies
Narcis Garcia <[email protected]>
| Newsgroups | gmane.linux.debian.user.catalan |
|---|---|
| Message-ID | <[email protected]> |
Aquesta proposta d'en Joan funciona: Coneguts="34930000000 3.930000000 .4930000000 44930000000 4.930000000" echo "$Coneguts" > coneguts.txt CercantInici="34" PatroCerca="^$(echo "$CercantInici" | sed -ne 's/\([0-9]\)/[\.\1]/gp')" echo "$PatroCerca" grep -E "$PatroCerca" coneguts.txt GRÀCIES! El 17/1/24 a les 17:53, Joan Montané ha escrit: > > > Missatge de Narcis Garcia <[email protected] > <mailto:[email protected]>> del dia dc., 17 de gen. 2024 a les 8:39: > > Bones, > > > Algú sap com fer-ho? > > > Si he entès bé el problema, la cosa seria així: > > cat coneguts.txt | grep -E "^[\.3][\.4]" > > El que faig és (manualment) canviar cada caràcter del prefix (per > exemple, 3) que vols buscar per la parella formada pel mateix caràcter i > un punt normal (en l'exemple [\.3]). La resta és senzill, cercar en el > fitxer amb dades per l'expressió regular de línies que comencin per > l'expressió regular. > > Una millora seria fer la conversió "34" a "[\.3][\.4]" de forma automàtica. > > Un primer intent pot ser amb 'sed', per exemple: > > echo 34 | sed -ne 's/\([0-9]\)/[\.\1]/gp > > retorna: > [.3][.4] > > que podem usar en l'ordre inicial proposada. > > Ajuntant les dues coses... > > PREFIX=`echo 34 | sed -ne 's/\([0-9]\)/[\.\1]/gp'` > cat coneguts.txt | grep -E "^$PREFIX" > > sembla que hauria de rutllar. > > En una única línia... > PREFIX=`echo 44 | sed -ne 's/\([0-9]\)/[\.\1]/gp'` && cat coneguts.txt | > grep -E "^$PREFIX" > > Sí, uso una variable d'entorn per a guardar el prefix en la forma > [\.3][\.4]. Si algú sap com enviar aquesta cadena al grep d'una forma > més elegant, que ho digui, sisplau. > > És això el que volies? > > Salut! > Joan Montané > > -- Narcis Garcia __________ I'm using this dedicated address because personal addresses aren't masked enough at this mail public archive. Public archive administrator should remove and omit any @, dot and mailto combinations against automated addresses collectors.