加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_商丘站长网 (https://www.0370zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

应用 awk 的 BEGIN 特别规矩打印文件名

发布时间:2022-11-16 16:38:33 所属栏目:Unix 来源:未知
导读: 你须要将它修改如下(假设 ls -l 只产生一行输出):
沙龙晃荡 | 3月31日 京东、微博、华为拭魅战专家与你合营商量容器技巧实践!
在 FILENAME 变量中存放着当前输入文件的名称。 您可以应

你须要将它修改如下(假设 ls -l 只产生一行输出):

沙龙晃荡 | 3月31日 京东、微博、华为拭魅战专家与你合营商量容器技巧实践!

在 FILENAME 变量中存放着当前输入文件的名称。 您可以应用 FILENAME 显示或打印当前输入文件名,如不雅在敕令行中未指定文件unix打印,则 FILENAME 的值为 - (标准输入)(LCTT 译注:多次按下回车键即可看到效不雅)。 然则,除非由 getline 设置,不然 FILENAME 在 BEGIN 特别模式中不决义。

应用 awk 打印文件名

Q:我想在 Linux / 类Unix 体系上应用 awk 打印文件名。 若何应用 awk 的 BEGIN 特别模式打印文件名? 我可以应用 gawk/awk 打印当前输入文件的名称吗?(LCTT 译注:读者最好能有一些 awk 的背景常识,不然浏览本文的时刻会有一些困惑)

应用语法如下:

/uploads/allimg/20221030/1667112786777_0.jpg

  1. awk '{ print FILENAME }' fileNameHere
  2. awk '{ print FILENAME }' /etc/hosts

因 awk 逐行攫取文件,是以,你可能看到多个文件名,为了避免这个情况,你可以应用如下的敕令:(LCTT 译注:FNR 表示当前记录数,只在文件中有效)

  1. awk 'FNR == 1{ print FILENAME } ' /etc/passwd
  2. awk 'FNR == 1{ print FILENAME } ' /etc/hosts

unix环境高级编程和unix网络编程哪本好_unix打印_tensorflow. unix

应用 awk 的 BEGIN 特别规矩打印文件名

应用下面的语法:(LCTT 译注:ARGV[I] 表示输入的第 i 个参数)

  1. awk 'BEGIN{print ARGV[1]}' fileNameHere
  2. awk 'BEGIN{print ARGV[1]}{ print "someting or do something> fileNameHere
  3. awk 'BEGIN{print ARGV[1]}' /etc/hosts

示例输出:

  1. /etc/hosts

然而,ARGV[1] 并不是每一次都能奏效,例如:

  1. ls -l /etc/hosts | awk 'BEGIN{print ARGV[1]} { print }'

  1. ls -l /etc/hosts | awk '{ print "File: " $9 ", Owner:" $3 ", Group: " $4 }'

示例输出:

File:/etc/hosts,Owner

(编辑:开发网_商丘站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章