在BASH别名或函数中使用awk

时间:2011-08-30 14:07:03

标签: bash awk

我的命令在命令行中运行得很好,但是当我尝试将它放在别名或函数中时却没有。

$ awk '{print $1}' /tmp/textfile
0

这是正确的,因为'0'位于“textfile”的第1位。

$ alias a="awk '{print $1}' /tmp/textfile"
$ a
1 0 136 94

这就是“textfile”中的整行。我已经尝试了各种各样的引号,括号和反引号,我可以想象它们可能会起作用。我可以用各种格式得到同样的问题。

我不理解什么?

2 个答案:

答案 0 :(得分:48)

你需要像$那样逃避:

 alias a="awk '{print \$1}' /tmp/textfile"

否则你的别名是:

 awk '{print }' /tmp/textfile

打印整个文件......

答案 1 :(得分:12)

使用函数而不是别名

myfunc(){ awk '{print $1}' file; }