Problem z AWK i /etc/passwd

Potrzebujesz pomocy z C, C++, perl, python, itp.
simontg
Posty: 6
Rejestracja: 17 grudnia 2007, 09:23

Problem z AWK i /etc/passwd

Post autor: simontg »

Witam , jestem nowy na tym forum i chcę się najpierw przywitać :D

Jestem początkującym userem linuxa :] , mam debiana

Chcę napisać skrypt w bash-u ale ma kilka problemów i dlatego proszę o drobną pomoc w tej kwestii
Chcę wypisać wszystkich i zliczyć userwów WY£¡CZAJ¡C roota i użytkowników systemowych.
Próbuje połączyć coś takiego

Kod: Zaznacz cały

awk -F ":" '{print ($1 , $4)}' /etc/passwd
no i chciałbym jakoś wepchnąć warunek

Kod: Zaznacz cały

if 
($4>0 and $4<1000 )
then 
 (tu chcę dac zliczenie ilości wierszy = ilość tych userów i przekierować strumień do pliku.txt )
fi 

no i mam problem z tym zliczeniem oraz połączeniem AWK z warunkiem IF . Prosze o wskazówki , nie gotowe rozwiązanie , choć w man AWK nie za bardzo zrozumiałem tą kwestię warunków ;/

z góry dziękuję za pomoc
salmon
Beginner
Posty: 296
Rejestracja: 12 października 2007, 23:28
Lokalizacja: Gliwice/Bielsko-Biała

Post autor: salmon »

Ten warunek:
simontg pisze:$4>0 and $4<1000
możesz wrzucić między '<tutaj>{. $4>0 jest nie potrzebne bo zawsze jest większy od zera, natomiast u mnie po wyżej nr 65000 proftpd stworzył sobie grupę, a jego pewnie nie chcesz liczyć. Do zliczania możesz użyć programu wc -l, a jak chcesz w awk to musisz zainteresować się funkcjami BEGIN i END i w tej pierwszej zainicjować licznik a w drugiej wypisać go. Zeby zapisać do pliku po prostu przekieruj standardowe wyjście.
simontg
Posty: 6
Rejestracja: 17 grudnia 2007, 09:23

Post autor: simontg »

OK , już sobie poradziłem z tym problemem ,
dziękuje wszystkim za pomoc.

Program AWK ma bardzo duże możliwości :)

Kod: Zaznacz cały


cat /etc/passwd | awk -F ":" 'BEGIN{m=0; }{if ($3>m && $3<1000) print $1 " : " $3}'


samo przekierowanie do pliku to już banał dlatego już go nie piszę




Uważam temat za zamknięty
ODPOWIEDZ