2010-06-24 3 views
8

Voici le contenu d'un fichier:Comment échapper une variable de champ dans une commande awk dans un alias?

one two three 
four five six 

Et voici mon alias

alias testawk "awk '{print $2}' file" 

Voici ce que je reçois:

> testawk 
one two three 
four five six 

Mais quand je donne cette commande, puis Je reçois ce que je veux:

> awk '{print $2}' file 
two 
five 

Comment puis-je échapper le spécificateur de champ dans l'alias? REMARQUE: J'utilise csh

+0

Avez-vous essayé \ $? –

+0

Voici une explication sur le traitement des méta-caractères de csh http://www.grymoire.com/Unix/Csh.html#uh-7 –

+0

'\ $' fonctionne dans bash, mais csh est un peu plus compliqué. –

Répondre

13

Envelopper l'alias w/' et utiliser '\'' pour le ' intégré.

alias testawk 'awk '\''{print $2}'\'' file' 
+0

Je n'ai pas vu que vous utilisiez csh en premier. Cette réponse corrigée devrait fonctionner pour vous. –

+0

Merci. Je déteste toutes ces petites bizarreries de csh. C'est dommage que je sois forcé de l'utiliser ici à mon travail. –

Questions connexes