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 ...
随机推荐
- SSH总结(二)
1.文件的操作,读写文件,解决乱码问题 读文件 InputStreamReader isr = new InputStreamReader(new FileInputStream(new File(p ...
- requirejs 第一个实例
介绍:requirejs 是实现了模块化加载和按需加载的js库,防止了全局变量的污染. 1.安装 require : 在require 中文网下载 http://www.requirejs.cn/,然 ...
- [转]Linux进程通信之POSIX消息队列
进程间的消息队列可以用这个实现,学习了下. http://blog.csdn.net/anonymalias/article/details/9799645?utm_source=tuicool&am ...
- P2424 约数和
题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f(X).现在的问题是 ...
- MySQL中lock与latch的区分
这里要区分锁中容易令人混淆的概念lock与latch.在数据库中,lock与latch都可以成为锁,但两者有截然不同的含义 latch 一般称为闩锁(轻量级的锁) 因为其要求锁定的时间非常短,若迟勋时 ...
- python基础——函数参数
课上老师已经讲过函数(func)的参数(args)传递. 之前学习了根据位置传递对应的参数,下面会介绍其他参数传递方式. 之前的位置传参: def f(a,b,c): return a+b+c pri ...
- Python3.6全栈开发实例[001]
检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者. li = [11,22,33,44,55,66,77,88,99,000,111,222] def func1(l ...
- Log Explorer 恢复误删除、更新数据
一.介绍 详细参考:https://blog.csdn.net/jinjazz/article/details/2459692 转自:https://blog.csdn.net/hch27151099 ...
- centos7 安装vue
1: npm安装: 2: 报错: bash: vue: command not found 执行npm install --global vue-cli 后 执行 vue 报错 bash: vue: ...
- 解决github访问慢和clone慢解决方案
在http://tool.chinaz.com/dns/ 这个网站输入github.com 打开cmd ping各个服务器ip地址,看看哪个比较好 windows下C:\Windows\System3 ...