2010-06-24 51 views
8

这里有一个文件的内容:如何在别名中的awk命令中转义字段变量?

one two three 
four five six 

这里是我的别名

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

这就是我得到:

> testawk 
one two three 
four five six 

但是,当我给这个命令,我得到我想要的:

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

如何转义别名中的字段说明符?注意:我正在使用csh

+0

您试过\ $吗? – 2010-06-24 13:59:25

+0

这里是关于处理csh meta-chars的一个解释http://www.grymoire.com/Unix/Csh.html#uh-7 – 2010-06-24 14:04:14

+0

'\ $'在bash中有效,但是csh有点挑剔。 – 2010-06-24 14:15:29

回答

13

将alias w/'换算并将'\''用于嵌入式'

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

我没有看到你先使用csh。这个更正的答案应该适合你。 – 2010-06-24 14:04:47

+0

谢谢。我讨厌csh的所有这些小怪癖。它太糟糕了,我不得不在工作中使用它。 – 2010-06-25 16:07:56