Jak możemy określić dwa separatory pól w poleceniu awk, gdy jednym z nich jest spacja? Myślę, że można to zrobić za pomocą wbudowanego warunku if-else w awk, jednak nie jestem pewien co do dokładnego polecenia.
Przykładowy plik jest jak poniżej:
cat test.txt
Swapnil Engineer 20000
Avinash:Doctor:30000
Dattu GovntJob 50000
Amol:Master:10000
Chcę wydrukować drugą kolumnę (2 USD). Oczekiwany wynik to:
Engineer
Doctor
GovntJob
Master
Gdy próbowałem umieścić zarówno spację, jak i dwukropek jako separatory pól, wystąpił błąd z błędem składni:
awk -F[ :] '{print $2}' test.txt
awk: cmd. line:1: :]
awk: cmd. line:1: ^ syntax error
Jak możemy użyć dwóch separatorów pól i funkcji awk?
-F[ :]
(jednego argumentu) otrzymała-F[:
i]
. Ten wykres jest bardzo przydatny (zwróć uwagę na pionowe strzałki dla pojedynczych / podwójnych cudzysłowów).Odpowiedzi:
Jesteś na dobrej drodze!
Po prostu dodaj brakujące cytaty wokół
[ :]
:źródło