Wpis z mikrobloga

#linux #bash

chciałbym sprawdzić zawartość każdej linii z pliku za pomocą awk, wyświetlić komunikat i zwiększyć licznik jeżeli pojawi się dany string. Dlaczego wykonuje się tylko jeden awk w $() a nie dwa. Czy tu zachodzi jakaś asynchroniczność?

while read -r line
do

counter_critical=$(awk -F "," -v c="$counter_critical" '
$11 ~ /Critical/ {print $1" "$11; $((c++));}
{print "awl critical"}
END {print c}
'
<<< "$line")

counter_important=$(awk -F "," -v c="$counter_important" '
$11 ~ /Important/ {print $1" "$11; $((c++));}
{print "awl important"}
END {print c}
'
<<< "$line")

echo "Critical: ${counter_critical}";

echo "Important: ${counter_important}";

#done petla while
done <<< "$comps"

W outupcie najpierw mam Critical, a potem to co w awk ;/
  • 7
@ziolo86: podaj jeszcze przykładowy input i wrzuć na serwis który umie into formatowanie, pastebin czy coś. Jeśli samym problemem jest kwestia zliczenia ile linii posiada X w pliku, to może wystarczy ci to
grep grub grub.cfg | wc -l
36
@Oo-oO: plik CSV:
Komputer,Ogólna ochrona,Ochrona przed wirusami,Skanowanie w czasie rzeczywistym,Poziom zabezpieczeń,Zapora,Aktualizacje automatyczne,Definicje wirusów zaktualizowane,Wersja definicji wirusów,Czas dostarczenia stanu,Aktualizacje oprogramowania,Czas ostatniego skanowania,Czas ostatniej instalacji,Nazwa profilu,Bieżący profil,Przypisany profil,Aktualizacja stanu,Ostatnie połączenie,Grupa,Alias komputera,Nazwa WINS,Nazwy DNS,Adresy IP,System operacyjny,Klucz subskrypcji,Produkt,Numer wersji,Ochrona antywirusowa,Firma,Partner serwisowy,Dostawca rozwiązania,Data rejestracji,Dostępne stanowiska,Łączna liczba stanowisk,Identyfikator GUID,Nazwa,Składniki domeny,Nazwa ostatnio zalogowanego użytkownika

mi tylko chodzi o dziwnąkolejność wykonywania skryptu.
Najpierw napis Critical, potem wszystko z pierwszeo awk, z drugiego nic ¯\_(ツ)_/¯
co znaczy "z drugiego"? Nie mogę przetestować poprawnie twojego skryptu, niemniej z tego co da się z tego przeczytać: counter_critical zapisujesz dwa razy (za drugim nadpisujesz tą zmienną).
@ziolo86: w tym co wkleiłeś na pastebin. Ogólnie, jeśli chcesz żeby ktoś ci pomógł, to ja postarałbym się przygotować to tak by ktoś mógł to prosto odpalić i sprawdzić samemu, w przeciwieństwie do zgadywania... czyli porządnie wklejasz skrypt np w jakiejś minimalnej ale kompletnej wersji, to jak go uruchamiasz oraz dane wejściowe.