Nowe posty

xx Dystrybucja pod HP Omen (6)
2024-03-27, 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
lamp Problem z Linux Lite po instalacji (0)
2024-03-27, 19:50:30
xx Ile pingwinów? (1)
2024-03-27, 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: cat i grep  (Przeczytany 4648 razy)

szewciu

  • Gość
cat i grep
« dnia: 2010-12-05, 13:39:32 »
Witam,
w jaki sposób utworzyć potokowe polecenie, które z pliku tekstowego, wypisuje wszystkie znaki przed pierwszym znakiem dwukropka, z każdej linii tego pliku?
Można wziąć za przykład plik /etc/passwd/ - jak wypisać z każdego wiersza znaki przed pierwszym dwukropkiem, czyli konkretnie nazwy użytkowników?

cat /etc/passwd/ | grep (...?)

Proszę o pomoc, z góry uprzejmie dziękuję i pozdrawiam.

szewciu

  • Gość
cat i grep
« Odpowiedź #1 dnia: 2010-12-05, 13:53:59 »
chyba mi się udało... to moje rozwiązanie:

cut -d : -f 1-1 /etc/passwd | sort

w tym przypadku wyciąłem ciąg znaków pierwszej frazy z każdego wiersza, separatorem jest dwukropek i posortowałem alfabetycznie. są jakieś inne możliwości?

rysiekmus

  • Gość
cat i grep
« Odpowiedź #2 dnia: 2010-12-05, 19:50:53 »
Witam,
ja zazwyczaj najpierw zamieniam dwukropek w /etc/passwd dodająć spację (można też dwukropek całkiem wyciąć), następnie używam awk do wypisania pól, które mnie interesują:

sed -e "s/:/ : /g" /etc/passwd | awk '{ print $9 " " $10 }' | sort

Jak na przykład w /etc/passwd mam imię i nazwisko, mogę użyć parametru $9 i $10 i posortować.

A tak przy okazji spotykam się z tym, że często ludzie używają komendy cat|grep, co wydaje mi się redundantne. Nie lepiej od razu przetworzyć, to co się chce?

"grep " to zupełnie to samo co "cat | grep" , chyba, że się chce użyć jakiejś opcji "cat".

arctgx

  • Gość
cat i grep
« Odpowiedź #3 dnia: 2010-12-06, 01:34:41 »
Cytat: rysiekmus
Witam,
ja zazwyczaj najpierw zamieniam dwukropek w /etc/passwd dodająć spację (można też dwukropek całkiem wyciąć), następnie używam awk do wypisania pól, które mnie interesują:
sed -e "s/:/ : /g" /etc/passwd | awk '{ print $9 " " $10 }' | sort
Awk ma przecież (podobnie jak cut) dający się ustawić (zmienną FS lub opcją -F) wejściowy separator pól.