Nowe posty

xx Jak poprawić polecenie wyszukujące największe pliki? (2)
Dzisiaj o 01:48:08
xx CUPS - Wyłączenie hostname w nazwie udostępnionej drukarki (6)
Wczoraj o 02:45:06
xx Tłumaczenie prostych programów napisanych w csh na sh (0)
2021-06-11, 16:07:52
xx Do regulaminu (0)
2021-06-07, 02:16:34
xx kompletny restore systemu (5)
2021-06-03, 11:47:08
xx Połączenie wifi, nie skanuje w poszukiwaniu sieci. (1)
2021-06-02, 22:04:54
xx problemy z instalacją (1)
2021-06-02, 14:23:26
xx Pomoc w napisaniu skryptu (11)
2021-05-31, 13:34:19
xx Instalacja php5.4 na Debian10 (2)
2021-05-31, 09:13:54
xx Wielkie firmy wymuszają dane (7)
2021-05-30, 20:25:21

Autor Wątek: Funkcja grep  (Przeczytany 536 razy)

ordan0404

  • Gość
Funkcja grep
« dnia: 2019-10-29, 00:07:58 »
Czy ma ktoś pomysł jak takie coś zrobić?
Znajdź w pliku linijkę odpowiadającą użytkowi root. Do pliku F4.txt wypisz 4 linijki powyżeji 5 linijek poniżej tej linii (grep).
Z góry dzięki.(chodzi o  samą metodykę)

Offline 920806

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 130
    • Zobacz profil
Odp: Funkcja grep
« Odpowiedź #1 dnia: 2019-10-29, 00:29:54 »
"Znajdź w pliku linijkę odpowiadającą użytkowi root", ale że ma być na początku, czy jak? Dwa słowa - "wyrażenia regularne" z egrep'em, a jeszcze man tail / head  .
« Ostatnia zmiana: 2019-10-29, 00:31:50 wysłana przez 920806 »
Steve Wozniak nie wiedział .. ~ ~ https://www.youtube.com/watch?v=FG1AQcGGSec ~~ / "Uparty jak nigdy" /P3@CE , L0\/E & rock'|\|'roII

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2464
  • 1709
    • Zobacz profil
Odp: Funkcja grep
« Odpowiedź #2 dnia: 2019-10-29, 01:08:39 »
Ja się spotkałem kiedyś z opcją przy komendzie grep
która umożliwia wypisanie więcej linii niż tylko szukanej np.
wypisanie szukanej linii + 5 linii poniżej lub powyżej.
( musisz znaleźć odpowiednia opcje do komendy)

Co do " metodyki "
Twój " mentor / nauczyciel " chyba celowo podaje komendy w nawiasach żebyś nie szukał komend.
Problemy można rozwiązać na wiele sposobów, ale on w nawiasach podaje Ci fragment jednego ze sposobów rozwiązania.
Twoim zadaniem jest tylko wyszukanie odpowiedniej opcji do podanej komendy aby odfiltrować swój tekst.

W Linuxie opcje komend znajdziesz w poradnikach / "manual-ach" wpisując w terminalu np.
man grep

lub tylko opcje
grep --help
gdzie grep to komenda do której szukamy poradnika lub opcji.

Można tez szukać poradników / manuale online
https://linux.die.net/man/1/grep
https://www.linux.pl/man/index.php?command=grep

Jeśli natomiast nie wiem jakiej komendy użyć lub w jaki sposób,
to najczęściej szukam w internecie.

- Jesli szukam przykladow (danej komendy), w wyszukiwarce wpisuje
" nazwa_komendy examples "  np.
grep examples
- Jesli szukam konkretnego zastosowania (danej komendy) to wpisuje np.
" nazwa_komendy co_chce_aby_robila " np.
grep show bottom line
- Uzywam specjalnie jezyka angielskiego, poniewaz w jezyku angielsku jest wiecej wynikow wyszukiwania.
- Czasami gdy wyniki wyszukiwania nie dotycza linuxa,
to poprzedzam szukany tekst slowem " linux ".

- Jeśli natomiast nie znam komendy i chce odpowiednio sformatowac tekst,
to bym szukal " linux co_chcialbym_zrobic "
linux show bottom line
czasami probuje wyszukac takze ze slowem bash
bash show bottom line
W tym przypadku wyniki wyszukiwania są trochę mniej precyzyjne niż z komenda grep
A jak poprawie zapytanie
bash search line and bottom line
To wyniki wyszukiwania sa znacznie lepsze.
« Ostatnia zmiana: 2019-10-29, 08:25:03 wysłana przez 1709 »
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline marcin'82

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 322
    • Zobacz profil
Odp: Funkcja grep
« Odpowiedź #3 dnia: 2019-10-30, 19:46:09 »
Cytuj
Z góry dzięki.(chodzi o  samą metodykę)
man grep

Rozkmina:
cat plik
linia
linia
linia
czwarta powyżej
trzecia powyżej
druga powyżej
pierwsza powyżej
ROOT
pierwsza poniżej
druga poniżej
trzecia poniżej
czwarta poniżej
piąta poniżej
linia
linia
linia

grep -B 4 -A 5 ROOT plik 
czwarta powyżej
trzecia powyżej
druga powyżej
pierwsza powyżej
ROOT
pierwsza poniżej
druga poniżej
trzecia poniżej
czwarta poniżej
piąta poniżej