blacnik 5 Napisano 1 Stycznia 2016 Udostępnij Napisano 1 Stycznia 2016 Cześć mam problem natury raczej systemów komputerowych dlatego pisze go w tym dziale. Otóż na studiach dostałem do napisania kilka prostych skryptów w programie AWK które musze oddać na systemy operacyjne i sieci. Nie mam zielonego pojęcia jak do tego się zabrać ponieważ nie było mnie na zajęciach i nie rozumiem AWKa a prowadzący nie ma w naturze czekania na tych co nie nadążają. Więc czy mógłby mi ktoś napisać te programy bądź wytłumaczyć chociaż jak to zrobić? (czytałem poradniki ale są dla mnie w większości pisane niezrozumiałym językiem). Przygotuj skrypty awk: 1) Skrypty, który z /etc/passwd wypisze tylko nazwy użytkowników 2) Skrypt, który z /etc/hosts wypisze nazwy hostów, dla adresów ip zaczynających się od 192.168.128 3) Skrypt, który z /etc/fstab wypisze dla systemów plików montowanych z "aleksnfs" ostatni fragment ścieżki katalogu (czyli dla "/users/stud/bn" wypisze "bn")Z góry dziękuję za pomoc Cytuj Link to post Share on other sites
Deomortis 72 Napisano 1 Stycznia 2016 Udostępnij Napisano 1 Stycznia 2016 (edytowane) awk -F ':' '{print $1}' /etc/passwd awk -F ' ' '/192\.168\.128/{print $2}' /etc/hosts awk -F ' ' '/aleksnfs/{print $2}' /etc/fstab | awk -F '/' '{print $NF}' Ten ostatni działa, ale jest trikiem z pajpą... Nie wiem jak to zrobić lepiej, za pomocą jednego awk. Nie jestem biegły w tym. PS. Temat bym przeniósł do programowania... PS2. Aha, no i przydałoby Ci się wytłumaczyć o co tu biega. Otóż parametr -F to precyzowanie separatora jakim są oddzielone interesujące nas dane. W przykładzie 1 jest to ":". Potem komenda print z argumentem $1 to po prostu pierwsza kolumna po podzieleniu przez te separatory. $2 to druga kolumna, $3 trzecia ... $NF to ostatnia ($(NF-1) to przedostatnia). Precyzowanie /wyrazenie/ przed kodem w {} pozwala na przefiltrowanie linii tekstu regexem. I tak w przykładzie 2 bierzemy tylko te linie które zawierają 192.168.128 (specjalnie \., ponieważ w regex . oznacza dowolny znak), a w przykładzie 3cim tylko te które zawierają napis aleksnfs. Edytowane 1 Stycznia 2016 przez Deomortis Cytuj Link to post Share on other sites
blacnik 5 Napisano 4 Stycznia 2016 Autor Udostępnij Napisano 4 Stycznia 2016 Wielkie dzięki Cytuj Link to post Share on other sites
Recommended Posts
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.