内容简介:Q:我想在 Linux / 类Unix 系统上使用 awk 打印文件名。 如何使用 awk 的在
Q:我想在 Linux / 类Unix 系统上使用 awk 打印文件名。 如何使用 awk 的 BEGIN
特殊模式打印文件名? 我可以使用 gawk/awk 打印当前输入文件的名称吗?(LCTT 译注:读者最好能有一些 awk 的背景知识,否则阅读本文的时候会有一些困惑)
在 FILENAME
变量中存放着当前输入文件的名称。 您可以使用 FILENAME
显示或打印当前输入文件名,如果在命令行中未指定文件,则 FILENAME
的值为 -
(标准输入)(LCTT 译注:多次按下回车键即可看到效果)。 但是,除非由 getline
设置,否则 FILENAME
在 BEGIN
特殊模式中未定义。
使用 awk 打印文件名
使用语法如下:
awk'{ print FILENAME }'fileNameHere awk'{ print FILENAME }' /etc/hosts
因 awk 逐行读取文件,因此,你可能看到多个文件名,为了避免这个情况,你可以使用如下的命令:(LCTT 译注: FNR
表示当前记录数,只在文件中有效)
awk'FNR == 1{ print FILENAME } ' /etc/passwd awk'FNR == 1{ print FILENAME } ' /etc/hosts
使用 awk 的 BEGIN 特殊规则打印文件名
使用下面的语法:(LCTT 译注: ARGV[I]
表示输入的第 i 个参数)
awk 'BEGIN{print ARGV[1]}' fileNameHere awk 'BEGIN{print ARGV[1]}{ print "someting or do something on data" }END{}' fileNameHere awk 'BEGIN{print ARGV[1]}' /etc/hosts
示例输出:
/etc/hosts
然而, ARGV[1]
并不是每一次都能奏效,例如:
ls -l/etc/hosts|awk'BEGIN{print ARGV[1]} { print }'
你需要将它修改如下(假设 ls -l
只产生一行输出):
ls -l/etc/hosts|awk'{ print "File: " $9 ", Owner:" $3 ", Group: " $4 }'
示例输出:
File: /etc/hosts, Owner:root, Group:root
处理由通配符指定的多个文件名
使用如下的示例语法:
awk'{ print FILENAME; nextfile } ' *.c awk'BEGIN{ print "Starting..."} { print FILENAME; nextfile }END{ print "....DONE"} ' *.conf
示例输出:
Starting... blkid.conf cryptconfig.conf dhclient6.conf dhclient.conf dracut.conf gai.conf gnome_defaults.conf host.conf idmapd.conf idnalias.conf idn.conf insserv.conf iscsid.conf krb5.conf ld.so.conf logrotate.conf mke2fs.conf mtools.conf netscsid.conf nfsmount.conf nscd.conf nsswitch.conf openct.conf opensc.conf request-key.conf resolv.conf rsyncd.conf sensors3.conf slp.conf smartd.conf sysctl.conf vconsole.conf warnquota.conf wodim.conf xattr.conf xinetd.conf yp.conf ....DONE
nextfile
告诉 awk 停止处理当前的输入文件。 下一个输入记录读取来自下一个输入文件。 更多信息,请参见 awk/ gawk 命令手册页:
man awk man gawk
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 获取python文件扩展名和文件名方法
- Linux查找处理文件名后包含空格的文件(两种方法)
- IIS短文件名泄露漏洞
- [译] 深度:Linux kernel 支持 UTF-8 文件名
- node.js初体验之利用node.js的fs-文件系统,来写一个批量修改文件名的小工具
- Go日志,打印源码文件名和行号造成的性能开销
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Book of CSS3
Peter Gasston / No Starch Press / 2011-5-13 / USD 34.95
CSS3 is the technology behind most of the eye-catching visuals on the Web today, but the official documentation can be dry and hard to follow. Luckily, The Book of CSS3 distills the heady technical la......一起来看看 《The Book of CSS3》 这本书的介绍吧!
HTML 编码/解码
HTML 编码/解码
html转js在线工具
html转js在线工具