Linux:awk进行行列转换操作

一、案例一

样本数据

bash 复制代码
name age
alice 21
ryan 30

命令

bash 复制代码
awk '{for(i=1;i<=NF;i++){arr[i]=arr[i]" "$i}}END{for(i=1;i<=NF;i++)print arr[i]}' a.txt

awk是按行读取文本数据的,且每次读取一行,默认按空格分割。

所以,这里的for只需要一层即可。

效果

案例二

样本数据

bash 复制代码
74683 1001
74683 1002
74683 1011
74684 1000
74684 1001
74684 1002
74685 1001
74685 1011
74686 1000

命令

bash 复制代码
awk '{if($1 in arr)arr[$1]=arr[$1]" "$2;else arr[$1]=$2}END{for(i in arr)printf "%s %s\n",i,arr[i]}' a.txt

这个行专列,类似于MySQL的group by效果

效果

相关推荐
贞明电子1 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
HideF2 小时前
Linux
linux·服务器·网络
万联WANFLOW2 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析
驰骋工作流2 小时前
流程时效考核的表结构:从待办时限到 WF_CH 考核结果驰骋BPM驰骋低代码低代码工作流引擎
android·低代码·rxjava
Ruiery4 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
传奇开心果编程4 小时前
【Flutter踩坑排雷】第7课:巨型 build 函数坑|全部 UI 写在同一个 build,维护难、隐性异常
android·flutter·ios·移动开发·跨平台·dart·声明式ui
Decay__5 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
丰锋ff6 小时前
压缩命令笔记
linux
江华森6 小时前
数据中心基础设施运维实战:概述与实验环境搭建
运维
迪菲赫尔曼7 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测