Kā izslēgt vārdu ar grep
Satura rādītājs:
Grep komandrindas rīks ir ļoti noderīgs, lai teksta datos meklētu rindas un fragmentus, kas atbilst noteiktai virknei, rakstzīmei, vārdam vai regulārai izteiksmei. Lai gan lielākā daļa grep lietojumu ir paredzēti datu kārtošanai sintakses atbilstībām, ko darīt, ja vēlaties izslēgt vārdu vai virkni ar grep? Rindas atbilstības izslēgšana ar grep ir tikpat noderīga kā grep atbilstības atrašana un drukāšana, tāpēc apskatīsim, kā izslēgt virkņu atbilstības un izslēgt vārdus ar grep.
Acīmredzot jums vēlēsies iegūt zināmu komandrindas pieredzi un saskarsmi ar grep, lai tas būtu noderīgi. Ja vēlaties sekot līdzi, varat atvērt lietojumprogrammu Terminal un izmēģināt to pats. Tā kā grep ir OS agnostiķa utilīta, varat izmantot izslēgšanas triku operētājsistēmās Mac OS, Linux, unix vai jebkurā citā, kas izmanto grep.
Kā izslēgt vienu vārdu ar grep
Vienkāršākais veids, kā izslēgt rindas ar virknes vai sintakses atbilstību, ir izmantot grep un karogu -v.
Pieņemsim, ka mēs izmantojam cat, lai drukātu failu komandrindā, bet mēs vēlamies izslēgt visas rindas, kurās ir ietverts termins “ThisWord”, tad sintakse izskatīsies šādi:
cat example.txt | grep -v ThisWord"
Izvade būs teksta fails example.txt, taču tajā nav iekļauta neviena rindiņa, kas satur virknes atbilstību ar “ThisWord”.
Varat arī izmantot grep tieši failos un izslēgt rindu atbilstības, pamatojoties uz vārdiem vai sintaksi, piemēram:
"grep -v ThisWord>"
Izmantojiet to, kas vislabāk atbilst jūsu konkrētajai darbplūsmai.
Kā izslēgt vairākas virknes vai vārdus, izmantojot grep
Tagad, kad zināt, kā izslēgt atbilstību vienam vārdam, nākamais acīmredzamais jautājums ir par vairāku vārdu izslēgšanu, izmantojot grep. Tas ir tikpat vienkārši, un ir daži dažādi veidi, kā to paveikt, izmantojot karogu -v, kā arī karogu -e.
Vispirms ņemsim iepriekš minēto piemēru par cat izmantošanu failā, kas tiek nosūtīts uz grep, un izslēdziet visas rindiņas, kas atbilst diviem vārdiem. “Word1” un “Word2”, tas izskatītos šādi:
"cat example.txt | grep -v -e Word1 -e Word2"
Jebkādas rindas, kurās ir “Word1” vai “Word2”, tiks izslēgtas no drukātajiem rezultātiem.
Varat arī izmantot grep tieši failos tāpat kā iepriekš:
"grep -v -e Word1 -e Word2 example.txt"
Cita pieeja ir atdalīt to, ko izslēgt ar grep, izmantojot cauruli, lai atdalītu katru spēli, piemēram:
grep -Ev word1|word2 example.txt"
Ja izmēģināsiet kādu no šīm opcijām teksta faila paraugā, jūs redzēsiet, ka izvade ir identiska neatkarīgi no jūsu izmantotās pieejas, izņemot rindas, kurās ir ietvertas mērķfrāzes, sintakse, vārdi vai teksta atbilstība.
Lieliski, parādiet noderīgu piemēru datu izslēgšanai, izmantojot grep!
Lai izmantotu praktisku piemēru, kas varētu būt noderīgs pieredzējušiem Mac lietotājiem, mēs varam izmantot grep izslēgšanu, drukājot un veicot vaicājumus komandrindas vēsturē, lai atrastu iepriekš izpildītās komandas, lai atrastu noklusējuma atbilstību, bet izslēdzot dažas atlasītās noklusējuma virknes no izvade.
Šeitajā piemērā mēs izdrukāsim komandu vēsturi noklusējuma virkņu atbilstībām, taču izslēgsim visas atbilstības, kas saistītas ar iTunes, kā definēts “com.apple.itunes”:
"history |grep noklusējuma rakstīt |grep -v -e com.apple.itunes"
Tātad, ja esat sekojis līdzi, tas ziņos par visām vēsturiskajām komandas “noklusējuma rakstīšanas” izpildēm, bet izslēdzot visu, kas attiecas uz iTunes lietojumprogrammu. Jauki, vai ne?
Ja jums ir kādi īpaši ērti veidi, kā izslēgt sērkociņus ar grep, kopīgojiet tos ar mums tālāk esošajos komentāros! Un, ja jums patika šis raksts, jūs gandrīz noteikti vēlētos pārlūkot mūsu daudzos komandrindas rakstus šeit, kur ir vēl daudz ko uzzināt!