shell – 如何在awk中的BEGIN块中使用变量?
发布时间:2020-12-15 21:31:28 所属栏目:安全 来源:网络整理
导读:我尝试像这样运行一行命令 touch ./py.py; awk 'BEGIN{print FILENAME}' ./py.py 并期望得到结果./py.py但只得到一个空行.但是,如果我没有BEGIN块,它可以工作: touch ./py.py; awk '{print FILENAME}' ./py.py 似乎FILENAME变量在BEGIN块中不可用.这是为什
我尝试像这样运行一行命令
touch ./py.py; awk 'BEGIN{print FILENAME}' ./py.py 并期望得到结果./py.py但只得到一个空行.但是,如果我没有BEGIN块,它可以工作: touch ./py.py; awk '{print FILENAME}' ./py.py 似乎FILENAME变量在BEGIN块中不可用.这是为什么?如何在BEGIN块中使用该变量? 解决方法
Awk可以在一次调用中处理多个文件(例如awk'{whatever}’file1 file2 file3).当awk启动时,在打开第一个文件之前执行BEGIN块,而不是在每个文件的开头执行(END块类似).有人可能会争辩说,将awk扩展为具有每个文件的BEGIN / END挂钩可能会有用,但是在我使用的任何当前版本的awk / nawk / gawk中都不存在它们…
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |