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

这个行专列,类似于MySQLgroup by效果

效果

相关推荐
HXQ_晴天12 分钟前
Linux 系统的交互式进程监控工具htop
linux·服务器·网络
song85830 分钟前
韦东山开发手册阅读笔记(五)
linux
fengci.34 分钟前
ctfshow其他(web396-web407)
android
LIZhang201635 分钟前
linux写一个脚本实时保存内存占用情况
linux·运维·服务器
IDC02-阿杰1 小时前
Windows WSL2安装Ubuntu24.04全攻略
linux·windows
FS_Marking1 小时前
ZTP(零接触配置):实现自动化与高效的网络部署
运维·网络·自动化
JJay.1 小时前
Android 17 大屏适配变化解
android
s09071361 小时前
ZYNQ7000 AXI DMA 接收中断(S2MM_introut)全解析:从硬件原理到Linux驱动开发
linux·驱动开发·dma·zynq
IT23101 小时前
抖音作品自动化监控工具
运维·自动化