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
éswc
.
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.