Chcę napisać ogólny skrypt awk, który może pobrać jako dane wejściowe plik i numer pola (w tym pliku) i podać średnią wartość tego pola w ten plik. Chciałbym używać go coś takiego:Ogólny skrypt awk do obliczania średniej na dowolnym polu za pomocą argumentu wiersza poleceń
bash$ avg.awk 3 input.file
22
bash$ avg.awk 4 input.file
2001
Oczywiście, można napisać skrypt jeśli wiem, które pole (na przykład 3 $) idę do średniej wcześniej. To byłoby coś takiego:
//{tot+=$3; count++}
END{
print tot/count;
}
Ale chcę mieć możliwość zmiany pola, które chcę uśrednić za pomocą opcji wiersza poleceń. Czy to jest możliwe? Dzięki!
Nie mogłem używać env tak, jak opisałeś. Na razie właśnie postawiłem prawdziwą ścieżkę do awk. Działa to jednak. Dzięki! – Ritesh
Używanie/usr/bin/env jest moim sposobem radzenia sobie z faktem, że różne systemy instalują awk w różnych miejscach. Możesz chcieć wydać polecenie "który env" z wiersza poleceń, aby dowiedzieć się, gdzie w twoim systemie znajduje się env. –
/usr/bin/env: awk -f: Brak takiego pliku lub katalogu To jest wiadomość, którą otrzymuję. env znajduje się w/usr/bin/env. Chociaż rozwiązałeś mój początkowy problem, chciałbym się dowiedzieć, w jaki sposób można użyć env. – Ritesh