Hogyan adhatunk meg két mezőelválasztót az awk parancsban, ha az egyik szóköz? Azt hiszem, ezt megtehetjük egy beágyazott if-else feltétel használatával az awk-ban, azonban nem vagyok biztos a pontos parancsban.
A minta fájl az alábbiak szerint alakul:
cat test.txt Swapnil Engineer 20000 Avinash:Doctor:30000 Dattu GovntJob 50000 Amol:Master:10000
Szeretném kinyomtatni a második oszlopot ($ 2). A várható kimenet:
Engineer Doctor GovntJob Master
Amikor megpróbáltam a szóközt és a kettőspontot is mezőelválasztóként elhelyezni, egy szintaktikai hibával nem sikerült:
awk -F[ :] "{print $2}" test.txt awk: cmd. line:1: :] awk: cmd. line:1: ^ syntax error
Hogyan használhatunk két mezőelválasztót és használhatjuk az awk funkciókat?
Megjegyzések
Válasz
Jó úton jársz!
Csak add hozzá a hiányzó idézőjeleket a :
awk -F"[ :]" "{print $2}" test.txt Engineer Doctor GovntJob Master
-F[ :]
(egy arg)-F[:
és]
lett. Ez a diagram nagyon hasznos (vegye figyelembe a függőleges nyilakat egyetlen / dupla idézőjeleknél).