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效果

效果

相关推荐
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ4 分钟前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔2 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密2 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi20152 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑
内卷焦虑人士2 小时前
Windows安装WSL2+Ubuntu 22.04
linux·windows·ubuntu
Digitally2 小时前
2026 年 8 款安卓数据擦除软件和应用对比
android
杨忆2 小时前
android 11以上 截图工具类
android
卷福同学2 小时前
【养虾日记】QClaw操作浏览器自动化发文
运维·人工智能·程序人生·自动化
粤M温同学2 小时前
Android Studio 中安装 CodeBuddy AI助手
android·ide·android studio
woho7788993 小时前
不同网段IP的网络打印机,打印、扫描设置
运维·服务器·网络