我们在本文中介绍了多款在Linux下充当过滤器的命令行工具。过滤器是这样一种程序:读取标准输入后,对它执行操作,然后将结果写入到标准输出。
过滤器工具以有效的方式处理信息,比如重构输出以生成实用报告,修改文件中的文本,以及处理其他许多系统管理任务。
言归正传,下面介绍几款Linux环境下实用的文件或文本过滤器。
1.Awk命令
Awk是一种出色的模式扫描和处理语言,它可以用来在Linux下构建实用过滤器。
可以参阅awk的参考手册页,了解更多信息和用法选项:
$ man awk
2.Sed命令
sed是一种强大的流编辑器,可用于过滤和转换文本。
sed的参考手册页添加了控制选项和操作说明:
$ man sed
3.Grep、Egrep、Fgrep和Rgrep命令
这些过滤器输出与特定模式匹配的行。它们从文件或标准输入读取行,默认情况下将所有匹配的行打印输出到标准输出。
注意:主程序是grep,几个变种与使用特定的grep选项完全一样(它们仍可用于向后兼容):
$ egrep = grep -E
$ fgrep = grep -F
$ rgrep = grep -r
下面是一些基本的grep命令:
linuxidc@linuxidc ~ $ grep "aaronkilik" /etc/passwd
aaronkilik:x:1001:1001::/home/aaronkilik:
linuxidc@linuxidc ~ $ cat /etc/passwd | grep "aronkilik"
aaronkilik:x:1001:1001::/home/aaronkilik:
4.head命令
head用于显示文件的最初部分,默认情况下输出头10行。你可以使用-n num标志,指定显示的行数:
linuxidc@linuxidc ~ $ head /var/log/auth.log
Jan 2 10:45:01 linuxidc CRON[3383]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan 2 10:45:01 linuxidc CRON[3383]: pam_unix(cron:session): session closed for user root