Cum putem specifica două separatoare de câmp în comanda awk atunci când unul dintre ele este spațiu? Cred că acest lucru se poate face folosind o condiție încorporată if-else în awk, totuși nu sunt sigur de comanda exactă.
Fișierul eșantion este după cum urmează:
cat test.txt Swapnil Engineer 20000 Avinash:Doctor:30000 Dattu GovntJob 50000 Amol:Master:10000
Vreau să imprim cea de-a doua coloană (2 USD). Ieșirea așteptată este:
Engineer Doctor GovntJob Master
Când am încercat să pun atât spațiu cât și două puncte ca separatoare de câmp, nu a reușit cu o eroare de sintaxă:
awk -F[ :] "{print $2}" test.txt awk: cmd. line:1: :] awk: cmd. line:1: ^ syntax error
Cum putem folosi două separatoare de câmp și să utilizăm funcționalitatea awk?
Comentarii
Răspuns
Sunteți pe drumul cel bun!
Doar adăugați ghilimelele lipsă în jurul [ :]
:
awk -F"[ :]" "{print $2}" test.txt Engineer Doctor GovntJob Master
-F[ :]
(unul arg) a primit-F[:
și]
. Acest grafic este destul de la îndemână (rețineți săgețile verticale pentru ghilimele simple / duble).