如果在awk程序中打开了管道,就必须先关闭它才能打开另一个管道。管道符右边的命令被括在双引号之间。每次只能打开一个管道。
范例 3-29
[root@localhost script]# awk -F ':' '{print $1 | "sort"}' passwd
adm
apache
bin
canna
daemon
dbus
ftp
games
… … …
### 解析 ###
Awk使用管道将print语句的输出结果发给sort命令作为输入。Snort命令进行排序后输出。
|
● 关闭文件和管道
如果打算再次在awk程序中使用某个文件或管道进行读写,则可能要先关闭程序,因为其中的管道会保持打开状态直至脚本运行结束。注意,管道一旦被打开,就会保持打开状态直至awk退出。因此,END块中的语句也会受管道的影响。
● System函数
Awk的内置函数system以UNIX/Linux的系统命令作为参数,执行该命令并且将命令的退出状态返回给awk程序。它很像C语言的一个标准库函数,该函数恰巧也为system()。注意,作为参数的UNIX/Linux命令必须加双引号。
格式
system(“UNIX/Linux Command”)
范例 3-30
{
system ( “cat ” $1)
system ( “clear” )
}
(脚本)
### 解析 ###
System函数以cat命令和输入文件的第1字段作为参数。Cat命令把第1个字段的值,即一个文件名,作为参数。接着以clear命令作为参数,shell将执行clear命令,清空屏幕。
|