Content #
gawk的主要特性之一是处理文本文件中的数据。它会自动为每一行的各个数据元素分配一个变量。在默认情况下,gawk会将下列变量分配给文本行中的数据字段。
·$0代表整个文本行。·$1代表文本行中的第一个数据字段。·$2代表文本行中的第二个数据字段。·$n代表文本行中的第n个数据字段。
文本行中的数据字段是通过字段分隔符来划分的。在读取一行文本时,gawk会用预先定义好的字段分隔符划分出各个数据字段。在默认情况下,字段分隔符是任意的空白字符(比如空格或制表符)。
在下面的例子中,gawk脚本会读取文本文件,只显示第一个数据字段的值:
$ cat data2.txt
One line of test text.
Two lines of test text.
Three lines of test text.
$
$ gawk '{print $1}' data2.txt
One
Two
Three
$
该脚本使用$1字段变量来显示每行文本的第一个数据字段。如果要读取的文件采用了其他的字段分隔符,可以通过-F选项指定:
$ gawk -F: '{print $1}' /etc/passwd
root
daemon
bin
[...]
christine
sshd
$
这个简短的脚本显示了系统中密码文件的第一个数据字段。由于/etc/passwd文件使用冒号(:)来分隔数据字段,因此要想划出数据字段,就必须在gawk选项中将冒号指定为字段分隔符(-F:)。
From #
Linux命令行与shell脚本编程大全