awk
awk 是 Linux 上功能最为强大的工具之一。它本身实际上是一种编程语言,可以实现复杂的逻辑语句,还可以简化部分文本的提取。在本文那中我们将不会详细对其进行介绍,而是快速了解一下它的语法,并尝试几个实际的例子。
awk 命令包括一个模式和由一条或多条语句构成的操作,语法如下所示:
|
请注意:
一种非常有用的操作是打印数据!下面是如何引用一条记录中的域。
$0 —— 整条记录
$1 —— 该记录中的第一个域
$2 —— 该记录中的第二个域 我们还可以从一条记录中提取多个域,之间使用逗号分开。
举例来说,要提取 /etc/passwd 文件中的第 6 个域,命令如下:
|
注意 -F 是由预先定义的 FS 变量所定义的输入域分隔符。在我们这个例子中是空格。
要从 /etc/passwd 文件中提取第一个和第六个域,命令如下:
|
要在域之间使用短横线代替冒号来打印这个文件的内容,命令如下:
|
要使用短横线作为域之间的分隔符来打印文件,并且只以逆序打印第一个域和第六个域,命令如下:
|
head
head 工具打印每个文件的最开始部分的内容(默认是 10 行)。如果没有给定文件,它就从标准输入中读入内容,如果给定了文件名就从文件中读入内容。
举例来说,如果我们希望从 memo 文件中提取前两行内容,命令如下:
|
我们可以使用 -c 选项指定要显示的字节个数。举例来说,如果我们希望从 memo 文件中读取前两个字节的内容,可以使用下面的命令:
|
tail
tail 工具打印每个文件的最末尾部分的内容(默认是 10 行)。如果没有给定文件,它就从标准输入中读入内容,如果给定了文件名就从文件中读入内容。
举例来说,如果我们希望从 memo 文件中提取最后两行内容,命令如下:
|
我们可以使用 -c 选项指定要显示的字节个数。举例来说,如果我们希望从 memo 文件中读取最后五个字节的内容,可以使用下面的命令:
|
结束语
现在我们已经知道如何使用各种工具从标准 Linux 文件中向外提取数据了。一旦提取出数据之后,这些数据就可以进行查看、打印或重定向到其他文件或数据库中了。了解了如何使用这些有用的工具可以帮助我们减少花费在烦杂任务上的时间,从而能够成为一名效率更高的管理员。
| 基于Linux操作系统实现的传真系统 | 12-09 | |
| Linux操作系统上最好的10款开源游 | 11-20 | |
| Linux 系统中的超级权限的控制 | 11-09 | |
| Linux操作系统下的常见系统资源共 | 11-07 | |
| Linux下的中文显示和支持常见问题 | 10-23 | |
| 嵌入式Linux系统的动态电源管理技 | 10-13 | |
| 从硬盘安装Linux操作系统的方法步 | 10-12 | |
| 深入浅出分析Linux设备驱动程序中 | 10-10 | |
| 使用kgdb调试linux内核及内核模块 | 10-04 | |
| 使用Linux 文本工具简化数据的提 | 10-04 | |
| 如何在Linux操作系统下检测内存泄 | 09-27 | |
| Linux内核编译菜单中相关选项的意 | 09-20 | |