linux 系统中实现列转行 及 行转列

 列转行

1、paste

复制代码
liujiaxin01@PC1:~/test$ seq -f %02g 10
01
02
03
04
05
06
07
08
09
10
liujiaxin01@PC1:~/test$ seq -f %02g 10 > a.txt
liujiaxin01@PC1:~/test$ cat a.txt
01
02
03
04
05
06
07
08
09
10
liujiaxin01@PC1:~/test$ paste -s -d " " a.txt
01 02 03 04 05 06 07 08 09 10
复制代码

 

2、tr + sed

复制代码
liujiaxin01@PC1:~/test$ cat a.txt
01
02
03
04
05
06
07
08
09
10
liujiaxin01@PC1:~/test$ tr "\n" " " < a.txt | sed 's/$/\n/'
01 02 03 04 05 06 07 08 09 10
复制代码

 

3、xargs(这个命令有局限性, 行数有限制)

复制代码
liujiaxin01@PC1:~/test$ cat a.txt
01
02
03
04
05
06
07
08
09
10
liujiaxin01@PC1:~/test$ cat a.txt | xargs
01 02 03 04 05 06 07 08 09 10
复制代码

 

4、awk

复制代码
liujiaxin01@PC1:~/test$ cat a.txt
01
02
03
04
05
06
07
08
09
10
liujiaxin01@PC1:~/test$ awk '{printf("%s ", $0)} END {printf("\n")}' a.txt
01 02 03 04 05 06 07 08 09 10
复制代码

 

行转列

测试数据

liujiaxin01@PC1:~/test$ seq -f %02g 10 | paste -d " " -s > a.txt
liujiaxin01@PC1:~/test$ cat a.txt
01 02 03 04 05 06 07 08 09 10

 

1、tr

复制代码
liujiaxin01@PC1:~/test$ cat a.txt
01 02 03 04 05 06 07 08 09 10
liujiaxin01@PC1:~/test$ cat a.txt | tr " " "\n"
01
02
03
04
05
06
07
08
09
10
复制代码

 

2、sed

复制代码
liujiaxin01@PC1:~/test$ cat a.txt
01 02 03 04 05 06 07 08 09 10
liujiaxin01@PC1:~/test$ sed 's/ /\n/g' a.txt
01
02
03
04
05
06
07
08
09
10
复制代码

 

3、xargs(有局限性)

复制代码
liujiaxin01@PC1:~/test$ cat a.txt
01 02 03 04 05 06 07 08 09 10
liujiaxin01@PC1:~/test$ cat a.txt | xargs -n 1
01
02
03
04
05
06
07
08
09
10
复制代码

 

4、awk

liujiaxin01@PC1:~/test$ cat a.txt
01 02 03 04 05 06 07 08 09 10
liujiaxin01@PC1:~/test$ awk '{ORS = " "}{print $0} END {printf("\n")}' a.txt
01 02 03 04 05 06 07 08 09 10

 

5、awk

复制代码
liujiaxin01@PC1:~/test$ cat a.txt
01 02 03 04 05 06 07 08 09 10
liujiaxin01@PC1:~/test$ awk '{for(i = 1; i <= NF; i++) printf("%s%s", $i,"\n")}' a.txt
01
02
03
04
05
06
07
08
09
10
复制代码

 

posted @   小鲨鱼2018  阅读(5453)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2020-10-29 linux系统中的防火墙
2020-10-29 linux系统中删除逻辑卷
2020-10-29 linux系统中逻辑卷快照
2020-10-29 linux系统中缩小逻辑卷
2020-10-29 linux系统中扩容逻辑卷
2020-10-29 linux 系统中部署逻辑卷(LVM)
2020-10-29 linuxRHEL8安装screen
点击右上角即可分享
微信分享提示