awk当输入是空文件时,为什么的 FILENAME 变量不返回任何内容?这是否意味着awk不打开该文件?如果不打开怎么知道它是空的,或者如果它打开为什么不返回文件名呢?
我读了这篇文章,但没有解释为什么下面应该工作。
awk 'BEGINFILE{print FILENAME}1' filename
Run Code Online (Sandbox Code Playgroud)
下面没有。
awk '{print FILENAME}' filename #or
awk 'BEGIN{print FILENAME}' filename
Run Code Online (Sandbox Code Playgroud)
从awk手册:
FILENAME A pathname of the current input file.
Inside a BEGIN action the value is undefined. (...)
Run Code Online (Sandbox Code Playgroud)
我想这就是解释。在处理字段之前, 的值FILENAME是未定义的。由于在空文件的情况下不处理任何字段,因此变量保持未初始化状态。
| 归档时间: |
|
| 查看次数: |
1488 次 |
| 最近记录: |