首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将txt文件中的行拆分为bash中的excel列。

将txt文件中的行拆分为bash中的excel列。
EN

Ask Ubuntu用户
提问于 2021-03-26 00:13:58
回答 1查看 678关注 0票数 1

我有一个类似于这个的文本文件(lines.txt):

代码语言:javascript
复制
ab.qq
1
2
3
cd.qq
3
4
5
ef.qq
7
8
9

我试图从每4行移动到excel/csv文件中的不同列,基本上是使用这个bash脚本打印的:

代码语言:javascript
复制
#!/bin/bash
split -l 4 lines.txt outsq
paste -d ' ' outsq*


ab.qq  cd.qq ef.qq
1  3  7 
2  4  8 
3  5  9 

我希望有一些帮助将它写到一个excel/csv文件中,而且任何其他产生结果的方法都是很好的(没有拆分/粘贴)。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2021-03-26 00:31:40

rs (reshape)实用程序起源于BSD,对于这类东西非常有用。

例如:

代码语言:javascript
复制
$ rs -e -t 4 0 < lines.txt
ab.qq  cd.qq  ef.qq
1      3      7
2      4      8
3      5      9

哪里

  • -e说要将每一行输入作为一个元素
  • -t将列转换为行
  • 4 0输出4行和所需的列

-c-C选项分别设置输入和输出分隔符,因此对于CSV输出,可以使用

代码语言:javascript
复制
$ rs -etC, 4 0 < lines.txt
ab.qq,cd.qq,ef.qq,
1,3,7,
2,4,8,
3,5,9,

rs可以从Ubuntu存储库中获得同名的包。

或者,您可以在awk中这样做:

代码语言:javascript
复制
$ awk '
    {a[NR%4] = a[NR%4] == "" ? $0 : a[NR%4] "," $0} 
    END {for(i=1;i<=4;i++) print a[i%4]}
' lines.txt
ab.qq,cd.qq,ef.qq
1,3,7
2,4,8
3,5,9
票数 4
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1326152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档