2010-06-24 4 views
8

Hier sind die Inhalte einer Datei:Wie kann ich eine Feldvariable in einem awk-Befehl in einem Alias ​​umgehen?

one two three 
four five six 

Und hier ist mein alias

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

Dies ist, was ich bekommen:

> testawk 
one two three 
four five six 

Aber wenn ich geben Sie diesen Befehl, dann Ich bekomme, was ich will:

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

Wie kann ich den Feldspezifizierer im Aliasnamen entfernen? HINWEIS: Ich verwende csh

+0

Haben Sie \ $ versucht? –

+0

Hier ist eine Erklärung zum Umgang mit csh Meta-Zeichen http://www.grymoire.com/Unix/Csh.html#uh-7 –

+0

'\ $' funktioniert in bash, aber csh ist ein bisschen mehr fickig. –

Antwort

13

Wickeln Sie den Alias ​​w/' und verwenden Sie '\'' für die eingebettete '.

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

Ich habe nicht gesehen, dass du zuerst csh benutzt hast. Diese korrigierte Antwort sollte für Sie funktionieren. –

+0

Danke. Ich hasse all diese kleinen Macken von csh. Es ist schade, dass ich gezwungen bin, es hier bei meiner Arbeit zu benutzen. –