Linux/Unix AWK:读取文本文件
时间:2020-01-09 10:43:08 来源:igfitidea点击:
如何在类似Linux/Unix的操作系统下使用awk模式扫描和文本处理语言读取文本文件?
使用awk逐行读取文本文件的默认语法如下:
### note '{ print }' '{ print 127.0.0.1 localhost
192.168.1.5 wks01
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.1.10 nas01
192.168.1.11 nas02
192.168.1.12 nas03
192.168.1.50 nfs2.vmware.theitroad.com nfs2v
192.168.1.51 nfs1.vmware.theitroad.com nfs1v
172.168.232.50 nfs1.kvm.theitroad.com nfs1k
172.168.232.51 nfs2.kvm.theitroad.com nfs2k
}' '1' all are same ###
awk '{ print }' /path/to/file
awk '{}1' /path/to/file
awk '1' /path/to/file
awk '{ print awk '{ print }' filename
}' /path/to/file
awk '{}1' /etc/passwd
awk '{print awk '{ print }' filename
}' /etc/hosts
awk '{print}' /etc/hosts
输出示例:
awk '{ print , }' filename
打印命令用于在屏幕上显示文本。
此命令的最简单形式:
### set OFS to : ###
### print user name, home directory and shell ###
awk -F: '{ print " users home directory set to \"" "\" with " " as login shell" }' /etc/passwd
这将显示当前记录的内容。
但是,在AWK中,记录分为多个字段,并且这些字段可以分别显示。
要查看第一个字段,请执行:
awk 'condition { action }' filename
awk '1 == /match/ { action }' filename
awk '1 == /match/ { print $ awk -F: '1 == /Hyman/ { print $ awk -F: '/Hyman/ { print $ man awk
}' /etc/passwd
}' /etc/passwd
}' filename
awk 'pattern { action }' filename
要查看当前记录的第一和第四字段,请执行:
##代码##您可以使用-F选项设置输出字段分隔符(OFS),其默认值为单个空格字符,如下所示:
##代码##命令print和print $0在功能上是相同的。
有条件的awk打印
awk语法如下:
##代码##如果第一个字段与Hyman匹配,请打印整行:
##代码##或者,
##代码##有关更多信息,请访问awk手册页:
##代码##
