2010-06-24 12 views
8

Éstos son los contenidos de un archivo:¿Cómo puedo escapar de una variable de campo en un comando awk en un alias?

one two three 
four five six 

Y aquí es mi alias

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

Esto es lo que me sale:

> testawk 
one two three 
four five six 

Pero cuando le doy a este comando, a continuación, Obtengo lo que quiero:

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

¿Cómo puedo escapar del especificador de campo en el alias? NOTA: Estoy usando csh

+0

¿Has probado \ $? –

+0

Aquí hay una explicación sobre el tratamiento de metadars csh http://www.grymoire.com/Unix/Csh.html#uh-7 –

+0

'\ $' funciona en bash, pero csh es un poco más meticuloso. –

Respuesta

13

Envuelva el alias w/' y use '\'' para ' incrustado.

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

No vi que estuvieras usando csh primero. Esta respuesta corregida debería funcionar para usted. –

+0

Gracias. Odio todas esas pequeñas peculiaridades de csh. Es una lástima que me veo obligado a usarlo aquí en mi trabajo. –

Cuestiones relacionadas