位置: 编程技术 - 正文

linux awk 多文件操作2种实现方法 (linux的awk命令大全)

编辑:rootadmin

推荐整理分享linux awk 多文件操作2种实现方法 (linux的awk命令大全),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux的awk用法,linux的awk命令大全,awk 输出多个文件,linux的awk命令大全,linux awk命令使用实例,linux awk nr,linux awk nr,awk 多文件处理,内容如对您有帮助,希望把文章链接给更多的朋友!

我们经常会将2个有关联文本文件进行合并处理。分别从不同文件获取需要的列,然后,整体输出到一起。awk进行多文件处理时候,常常会遇到2个方面问题,第一个是怎么样合并多个文件为一个文件。第二个问题就是怎么样将多行合并为一行显示。我这里说下我的处理2种方法,还有实现思路。

实例文本:

复制代码代码如下:[chengmo@centos5 shell]$ awk 'FNR==1{print "rn"FILENAME}{print $0}' a.txt b.txt a.txt wang man wangsan woman wangming man wangzheng man b.txt

需要合并得到结果:

wang man wangsan woman wangming man wangzheng man

awk多文件操作方法一:

实现思路:

通过外部命令合并文件,然后通过排序,然后通过awk进行合并操作。

首先:

复制代码代码如下:[chengmo@centos5 shell]$ cat a.txt b.txt | sort -n -k1 |awk '{print}' wang man wangsan woman wangming man wangzheng man

现在需要把:第一列相同的处理合并到一行,这里需要用“next”语句。它操作,可以参考awk 多行合并【next 使用介绍】(常见应用4)

linux awk 多文件操作2种实现方法 (linux的awk命令大全)

继续:

复制代码代码如下:[chengmo@centos5 shell]$ cat a.txt b.txt | sort -n -k1 |awk 'NR%2==1{fd1=$2"t"$3;next}{print $0"t"fd1}' wang man wangsan woman wangming man wangzheng man

需要把几行合并,经常用到方法是:NR%num 然后将行值保存下来,next该行。在输出时候打印出来。

awk多文件操作方法二

实现思路

不借助第3放工具打开,直接通过awk 打开多个文件。然后可以通过:FILENAME获得当前处理文件名。NR总记录 FNR当前文件记录,以及ARGC传入参数总数,ARGV是数组,各个参数值。

看下这些实例:

复制代码代码如下:[chengmo@centos5 shell]$ awk 'BEGIN{print ARGC,ARGV[0],ARGV[1],ARGV[2]}{print FILENAME,NR,FNR,$0}' a.txt b.txt 3 awk a.txt b.txt a.txt 1 1 wang mana.txt 2 2 wangsan woman a.txt 3 3 wangming mana.txt 4 4 wangzheng manb.txt 5 1 b.txt 6 2 b.txt 7 3 b.txt 8 4

程序代码:

复制代码代码如下:[chengmo@centos5 shell]$ awk ' BEGIN{ if(ARGC<3) { exit 1; } file=""; } { aData[FILENAME,$1]=ARGV[1]==FILENAME?$0:$2"t"$3; } END{ for(k in aData) { split(k,idx,SUBSEP); if(idx[1]==ARGV[1] && (ARGV[2],idx[2]) in aData) { print aData[ARGV[1],idx[2]],aData[ARGV[2],idx[2]] | "sort -n -k1"; } } }' a.txt b.txt wang man wangsan woman wangming man wangzheng man

代码说明:

这里用到2维数组,aData[文件名,关联列对应值] ,这种方法可以将多个文件内容。放入一个统一二维数组。然后循环数组,通过if((i,j} in array) 查找对应列值,在其它文件中是否存在。

以上是2种实现方法,其中第一种思路较为简单,很容易理解。第二种处理起来较为复杂。有更好方法大家给我分享。

linux下通过awk查看ip连接数(常见应用一) 复制代码代码如下:[chengmo@localhost~]$awk'BEGIN{while("netstat-an"|getline){if($5~/[1-]/){split($5,t1,":");tarr[t1[1]]++;}}for(kintarr){printk,tarr[k]|"sort-r-n-k2";}};'/pp$5是netstatan第

shell awk实现实时监控网卡流量脚本(常见应用二) 实现原理:[chengmo@localhost~]$cat/proc/net/devInter-|Receive|Transmitface|bytespacketserrsdropfifoframecompressedmulticast|bytespacketserrsdropfifocollscarriercompressedlo:

awk 分析web日志(页面执行时间)(常见应用3) 前一段时间,我写过一篇文章,shell脚本分析nginx日志访问次数最多及最耗时的页面(慢查询),其中提到了分析耗时页面重要性。今天主要讲的,是通过

标签: linux的awk命令大全

本文链接地址:https://www.jiuchutong.com/biancheng/359051.html 转载请保留说明!

上一篇:linux awk 正则表达式、正则运算符详细介绍 (awk正则表达式中引入变量)

下一篇:linux下通过awk查看ip连接数(常见应用一) (linux中awk怎么用)

  • 非独立核算的分公司可以开票吗
  • 预算会计无偿调拨净资产
  • 信息采集需要填两个家庭成员,但只能有一个监护人
  • 信用卡到账手续费
  • 加计抵减的税额多长时间
  • 费用化支出期末结转
  • 资本公积是属于什么类账户
  • 在建工程工伤保险
  • 一般纳税人注销库存需要补交税吗
  • 不容忽视的近义词
  • 城市生活垃圾处理与资源化利用工艺设计
  • 企业购入新能源电车需要缴纳印花税吗
  • 备案类减免税又做费用了
  • 公司缴纳的社保离职后自己可以缴纳社保
  • 领用工程物资用于在建工程的进项税抵扣问题
  • 应收出口退税属于哪个会计科目
  • 持有至到期投资科目被取消了吗
  • 工资五险一金缴费标准是多少
  • windows11安装错误
  • 财务线上线下是什么意思
  • php数组函数有哪些
  • 资产负债表怎么算资产负债率
  • 广告费增值税税目是什么
  • java 调用go
  • 新会计制度出台的背景
  • anaconda虚拟机
  • 实际交印花税会计分录
  • vuex iframe
  • 结转制造费用的账务处理
  • element-ui 表格
  • docker windows -v
  • 与http缓存有关的header
  • 国税代开专票缴纳城建税分录
  • 进项税可以跨年结转吗
  • php自动加载函数
  • jsp页面构成
  • 母公司的资质怎样才能转给子公司
  • 应收账款坏账准备怎么计算
  • centos 安装dpkg
  • 月末半成品也需要结转生产成本
  • 施工企业的内部往来
  • linux系统中mysql数据库的导入和导出
  • 盈余公积弥补亏损不影响留存收益
  • 发放职工工资是什么支出
  • 如果不签合同会怎么样
  • 材料暂估入库需要什么原始凭证
  • 房地产业营改增税收政策与企业应对策略课后测试
  • 存货的发出计价方法有哪些
  • 一年内到期的非流动负债是经营性负债吗
  • 小规模纳税人利润如何缴税
  • 应付账款和应付票据的区别与联系
  • 小规模公司房租发票税率是多少
  • 其他业务支出包括哪些内容科目
  • 企业自行进行的研究开发项目,在开发阶段如果
  • mysql数据库性能
  • mysql安装与配置的步骤与常用命令
  • win7盘符不见了
  • win10应用商店下载路径更改
  • ubuntu16.04命令行配置静态ip
  • 移动u盘的作用
  • ubuntuiso
  • os x10.11el capitan公测版下载地址(公测版计划注册教程)
  • 苹果mac怎么复制文字
  • centos7 network
  • win7开始菜单找不到启动项
  • freebsd服务器怎么样
  • linux 使用
  • jquery实现图片显示
  • bat批处理视频教程
  • opengl编程实例
  • jquery validator
  • golang 和 python
  • python坑人代码
  • 国税局调动
  • 江苏税务电子税务局电话号码
  • 劳办发1994第48号文全文原文
  • 一般纳税人租赁费税率
  • 企业所得税忘记交了怎么办
  • 12366重庆电子税务局
  • 为什么每个月总有几天
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设