Létrehoztam egy szövegfájlt 1000 véletlenszerű nagy- és kisbetűvel:

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

Hányszor jelenik meg a “macska” szó ebben a fájlban a grep és a wc?

Így tettem:

grep -ic cat file1 

De megszámolja azokat a sorokat, amelyekben megjelenik, miközben szeretném ellenőrizni, hogy hány alkalommal ez az egy sorban jelenik meg. Van valami ötlet?

Megjegyzések

  • fyi, tr használhatja az [helyett: [: alnum:]. . És meg akarja számolni, hogy hányszor jelenik meg az egész fájlban, nem csak a each sorban, vagy csak egy adott sorban (azt mondtad, hogy " ebben az egy sorban " a végén)?

Válasz

Az a munka, amit meg kell tennem, hogy megtudjam, hányszor van ebben a fájlban, a “cat” világ jelenik meg a grep és wc.

Próbálja:

grep -oi cat file1 | wc -l 

Példa:

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

^ Négy előfordulásunk van: cat fenti.

grep -oi cat file1 | wc -l 4 

Feladó man grep (kiemelés):

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

Megjegyzések

  • A fenti parancs megtalálja az összes alszöveget macska akkor is, ha részei más szó, mint bob macska és macska alougue. De a fájlt úgy hozzák létre, hogy ne tartalmazzon szóközt, se szót ne fékezzen, se sortörést. Ezért ez csak egy megjegyzés.
  • @schweik Igen, ez igaz. Nem adtam szóhatárokat a válaszomhoz.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük