【发布时间】:2012-01-23 14:11:50
【问题描述】:
我有 awk 文件:
#!/bin/awk -f
BEGIN {
}
{
filetime[$'$colnumber']++;
}
END {
for (i in filetime) {
print filetime[i],i;
}
}
和 bash 脚本:
#!/bin/bash
var1=$1
awk -f myawk.awk
当我跑步时:
ls -la | ./countPar.sh 5
我收到错误:
ls -la | ./countPar.sh 5
awk: myawk.awk:6: filetime[$'$colnumber']++;
awk: myawk.awk:6: ^ invalid char ''' in expression
为什么? $colnumber 必须替换为 5,因此 awk 应该读取 ls 输出的第 5 列。 谢谢。
【问题讨论】:
-
这似乎是这个问题的后续:stackoverflow.com/q/8551780/226201 正如其他人所指出的那样,bash 环境和 awk 环境是分开的,如果您想将参数从一个传递到另一个,则必须进行明确的。