请大牛们帮忙解释一下这句AWK
时间:2011-10-09
来源:互联网
awk 'BEGIN{}{if(NR==FNR){ts[i]=$0;i=i+1;} if(NR>FNR) { print ts[t] " " $0; t=t+1; }}END{}' 1.txt pid1.txt >a.txt
参数太复杂有点儿晕菜了
参数太复杂有点儿晕菜了
作者: gwssgc 发布时间: 2011-10-09
我也晕,下面单独每一行都是什么意思啊
awk
'
BEGIN{}
{
if(NR==FNR)
{ts[i]=$0;i=i+1;}
if(NR>FNR)
{ print ts[t] " " $0; t=t+1; }
}
END{}
'
1.txt pid1.txt
>a.txt
awk
'
BEGIN{}
{
if(NR==FNR)
{ts[i]=$0;i=i+1;}
if(NR>FNR)
{ print ts[t] " " $0; t=t+1; }
}
END{}
'
1.txt pid1.txt
>a.txt
作者: 相思爱文 发布时间: 2011-10-09
顶起,请awk大牛指教!
作者: gwssgc 发布时间: 2011-10-09
本帖最后由 yanyongkg 于 2011-10-16 23:21 编辑
awk在处理两个文件时,当读到第二个新文件时FNR都重新从1开始记数,而NR就一直自增下去
NR==FNR可以判断出awk此时是在处理第一个文件
NR>FNR可以判断出awk此时在处理第二个文件
BEGIN{}
END{}
这两个是脱裤子放P,既然action部分什么也不做,干嘛还要加它!
复制代码
把第一个文件1.txt的每一行依次存在数组ts 以i为数组下标,并做自加i++
也就是第一行存到ts[""] 不是ts[0]哦,i被初始为空值哦,刚开始我也以为是ts[0]
第二行存到ts[1]
第三行存到ts[2]
。
。
。
复制代码
当读到第二个文件pid1.txt时,取出数组ts中保存的第一个文件的每一行,并插入到第二个文件每一行前并加一个空格
取出数组中保存的数据道理同前保存数据时
最后输出定向到a.txt
awk在处理两个文件时,当读到第二个新文件时FNR都重新从1开始记数,而NR就一直自增下去
NR==FNR可以判断出awk此时是在处理第一个文件
NR>FNR可以判断出awk此时在处理第二个文件
BEGIN{}
END{}
这两个是脱裤子放P,既然action部分什么也不做,干嘛还要加它!
- {ts[i]=$0;i=i+1;}
也就是第一行存到ts[""] 不是ts[0]哦,i被初始为空值哦,刚开始我也以为是ts[0]
第二行存到ts[1]
第三行存到ts[2]
。
。
。
- { print ts[t] " " $0; t=t+1; }
取出数组中保存的数据道理同前保存数据时
最后输出定向到a.txt
作者: yanyongkg 发布时间: 2011-10-16
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28