Com excloure una paraula amb grep
Taula de continguts:
L'eina de línia d'ordres grep és molt útil per cercar a través de dades de text línies i fragments que coincideixin amb una cadena, caràcter, paraula o expressió regular definits. Tot i que la majoria dels usos de grep són per ordenar dades per a les coincidències de sintaxi, què passa si voleu excloure una paraula o cadena amb grep? Excloure coincidències de línia amb grep és tan útil com trobar i imprimir coincidències a grep, així que expliquem com excloure coincidències de cadena i excloure paraules amb grep.
Òbviament, voldreu tenir una mica d'experiència en línia d'ordres i exposició a grep per trobar-ho útil. Si voleu seguir-ho, podeu obrir l'aplicació Terminal i provar-la vos altres mateixos. Com que grep és una utilitat agnòstica del sistema operatiu, podeu utilitzar el truc d'exclusió a Mac OS, Linux, unix o qualsevol altra cosa que utilitzi grep.
Com excloure una sola paraula amb grep
La manera més senzilla d'excloure línies amb una coincidència de cadena o sintaxi és utilitzant grep i el senyalador -v.
Per exemple, suposem que estem utilitzant cat per imprimir un fitxer a la línia d'ordres, però volem excloure totes les línies que inclouen el terme "ThisWord", aleshores la sintaxi seria el següent:
cat exemple.txt | grep -v Aquesta Paraula"
La sortida serà el fitxer de text example.txt però excloent qualsevol línia que contingui una coincidència de cadena amb “ThisWord”.
També podeu utilitzar grep directament als fitxers i excloure les coincidències de línia basades en paraules o sintaxi, com ara:
"grep -v Aquesta Paraula>"
Feu servir el que funcioni millor per al vostre flux de treball particular.
Com excloure diverses cadenes o paraules amb grep
Ara que ja saps com excloure coincidències d'una sola paraula, la següent pregunta òbvia és sobre excloure diverses paraules amb grep. Això és igual de senzill, i hi ha algunes maneres diferents d'aconseguir-ho utilitzant el senyalador -v així com el senyalador -e.
Primer prenem l'exemple anterior d'utilitzar cat en un fitxer canalitzat a grep, i excloem qualsevol línia que coincideixi amb dues paraules; "Paraula1" i "Paraula2", això seria el següent:
"cat exemple.txt | grep -v -e Paraula1 -e Paraula2"
Qualsevol línia que contingui “Paraula1” o “Paraula2” quedarà exclosa dels resultats impresos.
També podeu utilitzar grep directament als fitxers igual que abans:
"grep -v -e Word1 -e Word2 exemple.txt"
Un altre enfocament és separar què s'ha d'excloure amb grep utilitzant una canonada per separar cada coincidència, així:
grep -Ev paraula1|paraula2 exemple.txt"
Si proveu qualsevol d'aquestes opcions en un fitxer de text d'exemple, trobareu que la sortida és idèntica independentment de l'enfocament que utilitzeu, excloent cadascuna de les línies que inclouen les frases, la sintaxi, les paraules o coincidència de text.
Genial, mostra'm un exemple útil d'exclusió de dades amb grep!
Per obtenir un exemple pràctic que els usuaris avançats de Mac poden trobar útil, podem utilitzar l'exclusió grep quan imprimim i consultem l'historial de la línia d'ordres per trobar ordres executades anteriorment per trobar coincidències predeterminades, però excloent algunes cadenes predeterminades seleccionades de la sortida.
A l'exemple aquí s'imprimirem l'historial d'ordres per a les coincidències de cadenes predeterminades, però excloem qualsevol cosa que tingui a veure amb iTunes tal com es defineix per “com.apple.itunes”:
"history |grep defaults write |grep -v -e com.apple.itunes"
Per tant, si ho heu seguit, això informaria de totes les execucions històriques de l'ordre "escriptura per defecte", però excloent qualsevol cosa que pertanyi a l'aplicació iTunes. Bo, oi?
Si teniu un ús particularment útil d'excloure coincidències amb grep, compartiu-los amb nos altres als comentaris a continuació! I si us ha agradat aquest article, gairebé segur que us agradaria navegar pels nostres molts articles de línia d'ordres aquí on hi ha molt més per aprendre!