Am creat un fișier text cu 1000 de litere aleatorii majuscule și minuscule:

cat /dev/urandom | tr -dc "a-zA-Z0-9" | head -c 1000 > file1 

De câte ori apare cuvântul „pisică” în acest fișier, folosind grep și wc?

Am făcut-o astfel:

grep -ic cat file1 

Dar contează liniile în care apare, în timp ce vreau să verific câte de câte ori apare în acea linie. Ai vreo idee?

Comentarii

  • fyi, tr poate folosi [: alnum:] în loc de az .. . Și doriți să numărați de câte ori apare în întregul fișier, nu doar pe linia fiecare sau într-o singură linie anume (ați spus " în acea linie " la sfârșit)?

Răspuns

Lucrul pe care trebuie să-l fac este să găsesc de câte ori în acest fișier apare lumea „pisică” folosind comanda grep și wc.

Încercați:

grep -oi cat file1 | wc -l 

Exemplu:

$ cat file1 foo cat bar zoo cat random text cat dog foobar cat end! 

^ Avem patru apariții ale cat mai sus.

grep -oi cat file1 | wc -l 4 

Din man grep (accentul meu):

 -o, --only-matching Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line. 

Comentarii

  • Comanda de mai sus va găsi toate sub șirurile cat , chiar dacă fac parte altor cuvinte precum bob pis și pis alougue. Dar fișierul este creat astfel încât să nu conțină spațiu, nici frână de cuvânt, nici întrerupere de linie. Prin urmare, aceasta este doar o notă.
  • @schweik Da, este adevărat. Nu am adăugat limite de cuvinte la răspunsul meu.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *