Nowe posty

xx Dystrybucja pod HP Omen (6)
Wczoraj o 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
Wczoraj o 21:08:23
lamp Problem z Linux Lite po instalacji (0)
Wczoraj o 19:50:30
xx Ile pingwinów? (1)
Wczoraj o 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: Funkcja grep  (Przeczytany 1056 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: 2763
  • 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: 402
    • 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
marcin82