shell 行转列

这篇博客介绍了如何利用shell脚本中的awk命令将数据从行格式转换为列格式。通过示例代码展示了如何处理特定格式的文本,将<title>标签内的内容按空格分隔并重新排列成列。
摘要由CSDN通过智能技术生成

shell 行转列

源文本如下:

<article> 
<title1>a1 a2 a3</titlel1> 
<title2>1 2 3</titlel2> 
<title3>11 22 33</titlel3> 
</article>

输出的文本:

a1:1
a1:11
a2:2
a2:22
a3:3
a3:33

命令:

[root@SourceGG106 rkdir]# echo '<article> 
> <title1>a1 a2 a3</titlel1> 
> <title2>1 2 3</titlel2> 
> <title3>11 22 33</titlel3> 
> </article>' |awk -F'<|>' '{if(NF>3){print $3}}' | awk -F " +" '{for(i=1;i<=NF;i++) a[i,NR]=$i}END{for(i=1;i<=NF;i++) {for(j=1;j<=NR;j++) printf a[i,j] " ";print ""}}' | awk '{print $1":"$2"\n"$1":"$3}' | sor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值