如何使用awk逐行读取文件

时间:2020-01-09 10:43:07  来源:igfitidea点击:

如何在Unix/Linux操作系统下使用awk实用程序逐行读取文件?

awk是模式扫描和文本处理语言。
它对于数据文件的操作,文本的检索和处理以及算法的原型设计和实验很有用。

AWK的名称源自其作者Alfred Aho,Peter Weinberger和Brian Kernighan的姓氏。

默认情况下,它一次处理一行。
例如,以下命令将一次仅处理一行:

$ cat /etc/passwd | awk '{ print 
$ awk '{ print 
$ awk -F':' '{ print  }' /etc/passwd
}' /etc/passwd
}'

或者更好的尝试

$ awk -F':' '{ print "User "  " login using "  " shell with as "  " home dir"}' /etc/passwd

print命令用于输出文本。

$0是整行的字段名称。
默认情况下,空白(空白行)用作字段分隔符。
您可以使用-F选项设置新的字段分隔符。
例如,要将:用作字段分隔符,请执行:

User root login using /bin/bash shell with as /root home dir
User daemon login using /bin/sh shell with as /usr/sbin home dir
User bin login using /bin/sh shell with as /bin home dir
User sys login using /bin/sh shell with as /dev home dir
....
....
User gdm login using /bin/false shell with as /var/lib/gdm home dir
User Hyman login using /bin/bash shell with as /home/Hyman home dir
User sshd login using /usr/sbin/nologin shell with as /var/run/sshd home dir

上面的命令将使用当前行的第一个字段($1)打印所有用户名。
您可以如下打印用户名($1),shell($7)和登录主目录($6)报告:

##代码##

输出:

##代码##