加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在perl或awk中每4列打印一行

发布时间:2020-12-15 23:25:47 所属栏目:大数据 来源:网络整理
导读:你能帮我解决一下如何将每个4-sequantial行转换成一个以制表符分隔的列? 兑换: A1233341 至 : A 1 2 33 3 4 1 解决方法 一个简单的方法是使用xargs: $xargs -n4 fileA 1 2 33 3 4 1 使用awk你会做: $awk '{printf "%s%s",$0,(NR%4?FS:RS)}' fileA 1 2 3
你能帮我解决一下如何将每个4-sequantial行转换成一个以制表符分隔的列?

兑换:

A
1
2
3
3
3
4
1

至 :

A   1  2  3
3   3  4  1

解决方法

一个简单的方法是使用xargs:

$xargs -n4 < file
A 1 2 3
3 3 4 1

使用awk你会做:

$awk '{printf "%s%s",$0,(NR%4?FS:RS)}' file
A 1 2 3
3 3 4 1

另一种灵活的方法是使用pr:

$pr -tas' ' --columns 4 file
A 1 2 3
3 3 4 1

可以轻松修改awk和pr解决方案以将输出分隔符更改为TAB:

$pr -at --columns 4 file
A         1         2             3
3         3         4             1                        

$awk '{printf "%s%s",(NR%4?OFS:RS)}' OFS='t' file
A         1         2             3
3         3         4             1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读