linux awk重定向,awk之重定向

1.输出重定向

将awk的输出重定向到unix/linux文件时,会使用shell的重定向操作符,重定向的目标文件名必须用双引号括起来,如果使用的重定向操作符为>。则文件被打开并清空。文件一旦打开,就会保持打开状态直至显示关闭或awk程序结束,此后print语句的输出都将追加到文件的尾部。

符号>>也用于打开文件,但是不清除文件内容,只向文件追加内容

awk '$4 >=70{print $1,$2}' filename

2.输入重定向(getline)

函数getline getline函数御用从标准输入、管道或文件(非当前处理的文件)读取输入。getline函数用于读取下一输入行,并且设置内置变量NF,NR和FNR。如果读取到一条记录,函数就返回1,如果读取到EOF(end of file,文件末尾)则返回0.如果发生错误,比如打开五年间失败,则getline返回-1

awk 'BEGIN {"data"|getline d;print d}' filename 先执行unix/linux的data命令,将输出通过管道发给getline,再通过getline将传来的内容赋值给d,然后打印d。

awk 'BEGIN{ "data "|getline d;split(d,mon);print mon[2]}' filename'先执行date命令,将输出通过管道发给getline,接着,getline从管道读取输入,然后保存在用户自定义变量d中,split函数从d中生成一个名为mon的数组,最后程序打印出属于组mon的第二个元素

awk 'BEGIN {while{"ls" |getline} print}'ls的命令的输出将传递给getline,每循环一次,getlinejiucongls的输出中读取一行,并将其显示到屏幕上,不需要输入文件,因为awk会在文件打开之前先处理完BEGIN块。

1.2 管道

如果在awk程序打开了管道,就必须先关闭他才能打开另一个管道。管道符右边的命令被括在双引号之间,每次只能打开一个管道。

awk '{print $1,$2 |"sort -r +1 -2 +0 -1" names awk使用管道将print的输出结果发给unix的sort命令作为输入,sort命令将以第二个字段作为逐渐,第一个字段为次键对输入进行逆排序,这种情况下,unix命令必须被双引号括起来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值