是否可以在不提供文件的情况下使awk程序在文件上运行 运行程序时文件的名称。
我试图这样做,但由于某种原因它不起作用,有人可以请解释 为什么这不起作用,我如何使它工作
#!/bin/awk -f
BEGIN{
ARGV[1]="books"
}
{
split($0,a,":")
if(a[4]!="-"){
n[a[2]]=n[a[2]]+1
print $0","n[a[2]]
}
}
END{
for(x in n){
print n[x]
}
}
在这个程序中,我试图让它在文件名书上运行,但它仍然不起作用
答案 0 :(得分:5)
除了向ARGV
添加元素外,您还需要增加ARGC
:
#!/bin/awk -f
BEGIN{
ARGV[1]="books"
++ARGC
}
在[{1}}]中存储其他元素并递增
ARGV
会导致读取其他文件。