Próbuję lepiej nauczyć się wiersza poleceń i zastanawiam się, jaka byłaby różnica między tymi dwoma poleceniami.

grep -c ^b example 

i

grep ^b example| cat –n 

Komentarze

  • Witamy w Unix i Linux . Jeśli chcesz nauczyć się obsługi wiersza poleceń, najlepiej poeksperymentować, uruchamiając polecenia samodzielnie, używając różnych plików wejściowych. Pytania powinny pokazać trochę wysiłku badawczego, więc ' d radzę sprawdzić odpowiednie strony podręcznika, aby poznać przeznaczenie różnych opcji. Strony podręcznika nie są ' nie najbardziej czytelne, jeśli ' jesteś nowy w Uniksie, więc jeśli masz jakiekolwiek problemy ze zrozumieniem go, możesz edytować to pytanie, aby było bardziej konkretne (i przydatne). Zobacz Jak zapytać i wybierz prezentację .
  • (-1) Nawet nie te same polecenia. Dwa niepowiązane polecenia.
  • Czy próbowałeś je uruchomić?

Odpowiedz

Cóż , zgodnie z z instrukcją , grep:

wyszukuje WZÓR w każdym PLIKU . Domyślnie grep drukuje pasujące wiersze.

i -c flaga:

-c, --count 

Wyłącz normalne wyjście; zamiast tego drukuj liczbę pasujących wierszy dla każdego pliku wejściowego.

Tak więc grep -c ^b example wypisuje liczba (liczba) linii pasujących do wzorca, podczas gdy grep ^b example wypisuje same wiersze.

Jak w przypadku cat, opisano w

połączyć pliki i wydrukować na standardowe wyjście

, a flaga -n to:

-n, --number 

ponumeruj wszystkie wiersze wyjściowe

Biorąc pod uwagę potok i brak nazwy plików, cat czyta z potoku, więc wyjście jest wyjściem grep z dodanymi numerami wierszy. Stąd wyświetla wszystkie pasujące wiersze, ponumerowane.


Różni się od grep -n ^b example, gdzie grep dodaje li ne numery meczów. grep zna numery wierszy oryginalnego pliku, podczas gdy cat widzi tylko dane wyjściowe grep i odpowiednio ponumeruje linie.

A więc mając plik wejściowy

$ cat example bar foo basf 

Mamy:

$ grep -c ^b example 2 $ grep ^b example |cat -n 1 bar 2 basf $ grep -n ^b example 1:bar 3:basf 

Odpowiedz

OK polecenie:

  1. grep -c ^b example: wyświetla liczbę pasujących wierszy dla wierszy zaczynających się na literę b i

  2. grep ^b example | cat -n: przekazuje wynik polecenia grep do polecenia cat i wyświetla je z numerami wierszy. -n zmusza cat do wyświetlenia ich wraz z numerami wierszy.

Przykład :

example.txt z zawartością:

media sound3 media sound1 media sound2 find sound -type f -name sound[0-9] -printf "media %f\n" > file.txt find sound -type f -name sound[0-9] -exec bash -c "echo media bash >> file.txt" {} \; find sound -type f -name sound[0-9] -exec bash -c "f="{}"; echo media $( basename ${f}) >> file.txt" \; 

Wynik z (1):

3 

Wynik z (2):

1 media sound3 2 media sound1 3 media sound2 

Komentarze

  • Tak Twoje prawo!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *