成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在Linux/Unix上使用awk打印文件名

系統 Linux
我想在 Linux / 類Unix 系統上使用 awk 打印文件名。 如何使用 awk 的 BEGIN 特殊模式打印文件名? 我可以使用 gawk/awk 打印當前輸入文件的名稱嗎?

[[224202]]

Q:我想在 Linux / 類Unix 系統上使用 awk 打印文件名。 如何使用 awk 的 BEGIN 特殊模式打印文件名? 我可以使用 gawk/awk 打印當前輸入文件的名稱嗎?(LCTT 譯注:讀者***能有一些 awk 的背景知識,否則閱讀本文的時候會有一些困惑)

FILENAME 變量中存放著當前輸入文件的名稱。 您可以使用 FILENAME 顯示或打印當前輸入文件名,如果在命令行中未指定文件,則 FILENAME 的值為 - (標準輸入)(LCTT 譯注:多次按下回車鍵即可看到效果)。 但是,除非由 getline 設置,否則 FILENAMEBEGIN 特殊模式中未定義。

 

使用 awk 打印文件名

使用語法如下:

  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

 

使用 awk 的 BEGIN 特殊規則打印文件名

使用下面的語法:(LCTT 譯注:ARGV[I] 表示輸入的第 i 個參數)

  1. awk 'BEGIN{print ARGV[1]}' fileNameHere
  2. awk 'BEGIN{print ARGV[1]}{ print "someting or do something on data" }END{}' 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 }'

你需要將它修改如下(假設 ls -l 只產生一行輸出):

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

示例輸出:

  1. File: /etc/hosts, Owner:root, Group: root

 

處理由通配符指定的多個文件名

使用如下的示例語法:

  1. awk '{ print FILENAME; nextfile } ' *.c
  2. awk 'BEGIN{ print "Starting..."} { print FILENAME; nextfile }END{ print "....DONE"} ' *.conf

示例輸出:

  1. Starting...
  2. blkid.conf
  3. cryptconfig.conf
  4. dhclient6.conf
  5. dhclient.conf
  6. dracut.conf
  7. gai.conf
  8. gnome_defaults.conf
  9. host.conf
  10. idmapd.conf
  11. idnalias.conf
  12. idn.conf
  13. insserv.conf
  14. iscsid.conf
  15. krb5.conf
  16. ld.so.conf
  17. logrotate.conf
  18. mke2fs.conf
  19. mtools.conf
  20. netscsid.conf
  21. nfsmount.conf
  22. nscd.conf
  23. nsswitch.conf
  24. openct.conf
  25. opensc.conf
  26. request-key.conf
  27. resolv.conf
  28. rsyncd.conf
  29. sensors3.conf
  30. slp.conf
  31. smartd.conf
  32. sysctl.conf
  33. vconsole.conf
  34. warnquota.conf
  35. wodim.conf
  36. xattr.conf
  37. xinetd.conf
  38. yp.conf
  39. ....DONE

nextfile 告訴 awk 停止處理當前的輸入文件。 下一個輸入記錄讀取來自下一個輸入文件。 更多信息,請參見 awk/gawk 命令手冊頁:

  1. man awk
  2. man gawk 
責任編輯:龐桂玉 來源: Linux中國
相關推薦

2009-06-29 09:57:05

Unix

2019-01-07 09:50:06

Linuxtarball命令

2019-11-26 16:58:51

Linuxpkgsrc

2023-01-17 07:40:59

LinuxAppImage應用程序

2021-10-02 10:10:47

LinuxBusyBox命令

2019-09-16 11:40:49

Linux交換文件

2017-05-03 15:30:38

LinuxMeld比較文件夾

2020-08-24 12:37:54

Linuxxargs命令

2020-12-28 06:44:45

FedoraLinux RPM文件

2010-05-11 10:29:06

Unix awk

2022-08-10 13:12:04

Linuxcat命令

2009-12-16 11:54:35

WindowsLinuxUnix

2022-11-10 15:17:43

Windows文件Linux

2015-08-21 09:07:52

LinuxNMAP安全

2021-08-03 14:33:53

cron定時器Linux命令

2018-02-25 09:48:36

LinuxUbuntu文件系統

2019-06-10 08:15:52

Linux命令

2018-08-06 09:30:00

LinuxPbcopyPbpaste

2018-04-25 10:46:05

Linux命令行日歷

2018-03-07 11:32:44

LinuxVundleVim
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天操天天天干 | 欧美乱操 | 男女视频免费 | 日韩1区 | 99re99| 337p日本欧洲亚洲大胆 | 国产在线视频一区二区董小宛性色 | 日日夜夜天天干 | 欧美一区视频 | www.日韩av.com| 日韩精品亚洲专区在线观看 | 日韩综合在线 | 久久国内| 一级欧美 | 羞羞的视频免费看 | 91精品国产一区二区三区 | 6080亚洲精品一区二区 | 精品国产一区二区 | 成人精品一区二区三区 | 精品欧美一区二区三区久久久小说 | 欧美日韩国产三级 | 午夜精品在线观看 | 久久美女视频 | 亚洲成人精品一区二区 | 精品美女在线观看视频在线观看 | 亚洲日韩中文字幕一区 | 亚洲国产精品一区二区第一页 | 日本免费黄色一级片 | 亚欧洲精品在线视频免费观看 | 国产一级片在线观看视频 | www日本在线播放 | 欧美涩 | 日本一区二区三区在线观看 | 欧美天堂 | 国产精品视频综合 | 夜夜爽99久久国产综合精品女不卡 | 国产成人91视频 | 少妇一区在线观看 | 成人综合视频在线 | 99精品国产一区二区三区 | 一二三区av |