awk的getline命令
原文出处:生活费的博客,http://www.cnblogs.com/276815076/archive/2011/12/05/2276625.html#undefined
两种情况:getline左右没有重定向符|或<
1.当getline左右没有重定向符|或<时,getline读去当前文件的第一行并将数据保存到变量中,如果没有变量,则数据保存到$0中;
由于awk在处理getline之前已经读入了一行,所以getline得到的返回结果是隔行的。
2.当getline左右有重定向符|或<时,getline作用于定向输入文件,由于该文件是刚打开,awk并没有读入一行数据,而getline读入了一行数据,那么getline返回的是该文件的第一行,而不是隔行。
root@myfreelinux pub]# awk ‘BEGIN{“cat kecheng.dat”|getline var;print var;}’
[root@myfreelinux pub]# awk ‘BEGIN{“cat kecheng.dat”|getline;print $0;}’
[root@myfreelinux pub]# awk ‘BEGIN{getline var<”kecheng.dat”;print var;}’
[root@myfreelinux pub]# awk ‘BEGIN{getline <”kecheng.dat”;print $0;}’
以上四行awk程序都是将kecheng.dat的第一行数据打印出来,结果是:zhangsan math english chinese
[root@myfreelinux pub]# awk ‘{getline var;print $0;print var;}’ kecheng.dat
zhangsan math english chinese
lisi computer chinese english
wangwu dianzi chinese math
zhaoliu huanjing english chinese
[root@myfreelinux pub]# awk ‘{getline var;print var;}’ kecheng.dat
lisi computer chinese english
zhaoliu huanjing english chinese
以上两个例子可以看出来,awk和getline是分别取数据文件中的行数据,而且是awk首先从数据文件中取数据,后getline取下一行数据。
getlin在不同环境下影响到awk中的值的对应关系如下图:
————————————————-
形式 设置
————————————————-
getline $0,NF,NR,FNR
getline var var,NR,FNR
getline<file $0,$1…$NF,NF
getline var<file var
cmd|getline $0,NF
cmd|getline var var
awk的getline命令的更多相关文章
- awk 调用 shell 命令,并传递参数
from:awk 调用 shell 命令的两种方法:system 与 print shell 向awk传递命令,这样使用即可: awk -v ... 但反过来呢?awk调用外部命令,同时也传参呢? ...
- AWK与SED命令
linux系统比较常用的AWK与SED命令,这两个命令主要是格式化文本文件信息.接下来将详细介绍这两个命令的基本用法以及可以实现的功能. 一.AWK命令 AWK语言的基本功能是在文件或者字符串中基于指 ...
- AWK原理及命令和文件输入
一.awk简介 1.awk是3个姓氏的首字母,代表该语言的3个作者,awk的版本有很多,包括:旧版awk,新版awk(nawk),GNU awk(gawk)等. awk程序有awk命令,括在引 ...
- awk调用date命令
创建文件date.awk: $ == { cmd = "\"" while (cmd | getline line) { print line } close(cmd) ...
- linux之awk、sed命令
总结: 两个命令的正则表达式都用''单引号进行区分. 输出变量名用单引号,输出变量值用双引号,这个在bash脚本里一般是通用的. 在bash脚本里要使用变量值,都要加上双引号 awk用法: 参考网址: ...
- 通过awk获取netstat命令中的进程号
需要如下: 获取进程号
- Linux下的awk文本分析命令详解
一.简介 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linux/ ...
- linux中cut、printf、awk、sed命令
cut.printf.awk.sed在linux中都是用来处理文本的命令,接下来一个一个看. 一.cut命令 cut [选项] 文件名 选项: 主要使用一下两个参数,若是只使用 -f 则默认的分割符为 ...
- Linux下grep、tail、wc、awk文件处理命令
grep Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并匹配行打印出来. 命令语法: usage: grep [-abcDEFGHhIiJLlmnOoqRSsUV ...
随机推荐
- 嵌入式开发之davinci--- 8168 总的roi 编码
http://bbs.61dsp.com/forum.php?mod=viewthread&tid=767
- redis的下载
网址一:https://github.com/dmajkic/redis/downloads 网址二:http://windows.php.net/downloads/pecl/releases/re ...
- Muduo网络库源代码分析(六)TcpConnection 的生存期管理
TcpConnection是使用shared_ptr来管理的类,由于它的生命周期模糊.TcpConnection表示已经建立或正在建立的连接.建立连接后,用户仅仅须要在上层类如TcpServer中设置 ...
- ASP.NET:把ashx写到类库里并在页面上调用的具体方法
在类库中建Http Handler的操作很简单,就是添加一个普通的类,然后把之前ashx里的代码几乎一模一样贴到这个类中.但要注意命名空间和类名,因为之后我们会用 到.样例Handler: names ...
- python3 - 生成器genarator
在Python中,这种一边循环一边计算的机制,称为生成器:generator. 生成器保存的是算法,每次调用 next() ,就计算出 下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出 ...
- 用ElasticSearch搭建自己的搜索和分析引擎【转自腾讯Wetest】
本文大概地介绍了ES的原理,以及Wetest在使用ES中的一些经验总结.因为ES本身涉及的功能和知识点非常广泛,所以这里重点挑出了实际项目中可能会用到,也可能会踩坑的一些关键点进行了阐述. 一 重要概 ...
- (int)()和int()强制类型转换
(int)()这个是c语言的强制转换,众所知周 int(),这种理解靠谱点 Class A { A(int i){} } 调用int类型的构造函数然后转换的 其实都可以转换.
- 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型
Swift 2.0学习笔记(Day 13)——数据类型之整型和浮点型 原创文章,欢迎转载.转载请注明:关东升的博客 Swift提供8.16.32.64位形式的有符号及无符号整数.这些整数类型遵循 ...
- EasyGBS国标流媒体服务器GB28181国标方案安装使用文档
EasyGBS - GB28181 国标方案安装使用文档 下载 安装包下载,正式使用需商业授权, 功能一致 在线演示 在线API 架构图 EasySIPCMS SIP 中心信令服务, 单节点, 自带一 ...
- c# 如何利用异或运算进行简单加密解密
利用“^”异或运算对字符串进行加密 原理:按位做“异或”运算是->位值相同得1,不同得0,如下计算 1 ^ 1 = 0 1 ^ 0 = 1 0 ^ 1 = 1 0 ^ 0 = 0 例如: < ...