如何在运行程序时在不放置文件名的情况下在某个文件上运行awk脚本

ome*_*ner 2 awk

是否有可能使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]
}
}
Run Code Online (Sandbox Code Playgroud)

在这个程序中,我试图让它在文件名书上运行,但它仍然无法正常工作

Tom*_*ech 5

除了添加元素之外ARGV,还需要增加ARGC:

#!/bin/awk -f
BEGIN{
  ARGV[1]="books"
  ++ARGC
}
Run Code Online (Sandbox Code Playgroud)

GNU AWK手册:

存储其他元素[in ARGV]和递增ARGC会导致读取其他文件.