Jak możemy określić dwa separatory pól w poleceniu awk, skoro jednym z nich jest spacja? Myślę, że można to zrobić za pomocą osadzonego warunku if-else w awk, jednak nie jestem pewien co do dokładnego polecenia.
Przykładowy plik jest następujący:
cat test.txt Swapnil Engineer 20000 Avinash:Doctor:30000 Dattu GovntJob 50000 Amol:Master:10000 
Chcę wydrukować drugą kolumnę ($ 2). Oczekiwany wynik to:
Engineer Doctor GovntJob Master 
Kiedy próbowałem wstawić spację i dwukropek jako separatory pól, nie powiodło się z powodu błędu 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 funkcjonalności awk?
Komentarze
Odpowiedź
 Jesteś na dobrej drodze! 
 Po prostu dodaj brakujące cudzysłowy wokół [ :]: 
awk -F"[ :]" "{print $2}" test.txt Engineer Doctor GovntJob Master 
-F[ :](jeden arg) otrzymał-F[:i]. Ten wykres jest całkiem przydatny (zwróć uwagę na pionowe strzałki dla pojedynczych / podwójnych cudzysłowów).