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

效果

相关推荐
Lonely 净土21 小时前
Linux 运维文件写入操作
linux·运维·服务器·文件管理
飞英思特无线充电21 小时前
严苛场景巡检机器人的无线补能设计:点位、BMS、认证与运维边界
运维·机器人
Jimmy_jimi1 天前
利用nginx代理完成url重定位
运维·nginx
liuyicenysabel1 天前
多服务上线日记三:
运维·服务器·笔记·学习
夜雪一千1 天前
MySQL 全局锁是什么?原理、风险、备份踩坑完整实战
android·mysql·adb
吠品1 天前
Wine 在 Linux 上运行 Windows 软件完整指南
java·linux·服务器
一只鹿鹿鹿1 天前
大数据中心安全系统解决方案(Word文件)
大数据·运维·物联网·安全·政务
深念Y1 天前
从 Windows 迁移到 Linux 开发环境的记录
linux·windows·链接·bun·ram·imdisk
领创工作室1 天前
GitHub Workflows 全面解析:从核心概念到开源实现
运维·github
吕海洋1 天前
目前可用的docker源2026.08
运维·docker·容器