Próbuję uruchomić polecenie powłoki z poziomu awk dla każdego wiersza pliku, a polecenie powłoki wymaga jednego argumentu wejściowego. Próbowałem użyć system()
, ale nie rozpoznałem argumentu wejściowego.Jak przekazać zmienne z awk do polecenia powłoki?
Każda linia tego pliku jest adresem pliku i chcę uruchomić polecenie, aby przetworzyć ten plik. Tak więc, dla prostego przykładu, chcę użyć polecenia "wc" dla każdej linii i przekazać $1
do wc.
awk '{system("wc $1")}' myfile
Wyszukiwanie w pierwszej kolejności, istnieje już sto rozwiązań. – BMW
Dlaczego Twoim zdaniem awk jest odpowiednim narzędziem do tej pracy? Wydaje się, że 'xargs' lub prosta powłoka' while read line' pętli będzie lepsza i łatwiejsza. –
Po drugiej stronie: dlaczego uważasz, że WC jest właściwym narzędziem do tej pracy? Wygląda na to, że zmienne wbudowane awk i funkcje byłyby lepsze i łatwiejsze? –