Kazano mi więc zrobić, last > lastloggedin
który tworzy plik, który pokazuje ostatnie logowanie klas od ostatniego restartu systemu, a teraz jestem proszony o napisanie skryptu Awk o nazwie, myawk
który zlicza / określa, ile wierszy lastloggedin
zawiera łańcuch CFS264
.
zrobiłem grep -c CFS264 lastloggedin
text-processing
awk
scripting
TayshaunS
źródło
źródło
awk
? Jeśli nie, możesz po prostu użyćgrep -c CFS264 lastloggedin | wc -l
.grep -c (something) (something) | wc -l
będzie zawsze produkować "1".Odpowiedzi:
Na początek możesz użyć
awk
do wyszukiwania wierszy w pliku, który zawiera ciąg znaków:Bity w
{ .... }
będą poleceniami wymaganymi do wyrównania liczby linii z tym ciągiem. Aby potwierdzić, że powyższe działa, możesz użyćprint $0
tam, aby po prostu wydrukować te wiersze, które zawierają szukany ciąg.Jeśli chodzi o liczenie, jeśli szukasz „licznika awk”, natkniesz się na to SO Q&A zatytułowane: użycie awk do zliczenia liczby rekordów . Pokazana tam metoda wystarczy dla tego, co opisujesz:
Przykład
UWAGA: Nie podajesz, które pole CFS264 dotyczy danych
last
wyjściowych. Zakładając, że jest to nazwa użytkownika, możesz dodatkowo ograniczyćawk
polecenie do wyszukiwania tylko tego pola w następujący sposób:źródło
awk
.Poniższy przykład zlicza czasy, o których jestem wspomniany bez potrzeby używania
lastloggedin
pliku:Jeśli nalegasz na użycie
lastloggedin
pliku lub jesteś zmuszony go użyć , możesz to zrobić w ten sposób:Użyj,
$1~/some_chars/
aby uzyskać wszystkie nazwy użytkowników zawierające podane znaki lub$1~/^prefix/
dopasować tylko nazwy zaczynające się odprefix
:PS:
Wyszukaj
man awk
więcej wskazówek ... ;-)awk
jest bardzo satysfakcjonujące: Możesz zrobić wiele rzeczy po bardzo krótkim czasie nauki ...źródło
Ostatnia może obejmować logowanie użytkowników z poprzednich restartów. W związku z tym następujące informacje będą drukować tylko użytkownicy od ostatniego uruchomienia:
Pierwsza część polecenia awk określa zakres - zacznij od pierwszego wiersza, aż pierwsza kolumna zostanie „uruchomiona ponownie”.
źródło