我的命令在命令行中运行得很好,但是当我尝试将它放在别名或函数中时却没有。
$ awk '{print $1}' /tmp/textfile
0
这是正确的,因为'0'位于“textfile”的第1位。
$ alias a="awk '{print $1}' /tmp/textfile"
$ a
1 0 136 94
这就是“textfile”中的整行。我已经尝试了各种各样的引号,括号和反引号,我可以想象它们可能会起作用。我可以用各种格式得到同样的问题。
我不理解什么?
答案 0 :(得分:48)
你需要像$
那样逃避:
alias a="awk '{print \$1}' /tmp/textfile"
否则你的别名是:
awk '{print }' /tmp/textfile
打印整个文件......
答案 1 :(得分:12)
使用函数而不是别名
myfunc(){ awk '{print $1}' file; }