排列和列排用awk [英] Row to column and column to row using awk

查看:108
本文介绍了排列和列排用awk的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含如下

cat file1.txt
a b c 
1 2 3

cat file2.txt
a
b
c
1
2
3

我想文件1的方式排列

I want file1 to be arranged as

a
b
c
1
2
3

和文件2的方式排列

a b c
1 2 3

我会使用类似的解决方案的awk一行

I would like a solution using awk one line

推荐答案

一些 AWK 版本

awk 1 RS=" |\n" file1  # gnu awk version
awk '{for (i=1;i<=NF;i++) print $i}' file1 # portable version
a
b
c
1
2
3

结果

awk '{printf "%s" (NR%3==0?"RS:FS),$1}' file2
a b c
1 2 3

的printf%S#打印pararameter#1($ 1)结果
NR%3 == 0RS:FS #添加额外的格式测试,如果行号3。如果它不是,用FS(空格),如果它。是使用RS,新行。结果
所以这个调整每3行之后下一个参数。

printf "%s" # print pararameter #1 ($1)
NR%3==0?"RS:FS # add extra formatting. Test if line is number 3. If its not, use FS (a blank space), if it is use RS, a new line.
So this adjust the next parameter after every 3 line.

这篇关于排列和列排用awk的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆