Comment pouvons-nous spécifier deux séparateurs de champ dans la commande awk lorsque l'un d'eux est l'espace? Je pense que cela peut être fait en utilisant une condition if-else intégrée dans awk, mais je ne suis pas sûr de la commande exacte.
Le fichier d'exemple est comme ci-dessous:
cat test.txt
Swapnil Engineer 20000
Avinash:Doctor:30000
Dattu GovntJob 50000
Amol:Master:10000
Je veux imprimer la deuxième colonne (2 $). La sortie attendue est:
Engineer
Doctor
GovntJob
Master
Lorsque j'ai essayé de mettre à la fois l'espace et les deux points comme séparateurs de champ, cela a échoué avec une erreur de syntaxe:
awk -F[ :] '{print $2}' test.txt
awk: cmd. line:1: :]
awk: cmd. line:1: ^ syntax error
Comment pouvons-nous utiliser deux séparateurs de champs et utiliser la fonctionnalité awk?
-F[ :]
(un argument), il a obtenu-F[:
et]
. Ce graphique est assez pratique (notez les flèches verticales pour les guillemets simples / doubles).Réponses:
Tu es sur la bonne piste!
Ajoutez simplement les guillemets manquants
[ :]
:la source