我有一个类似于这个的文本文件(lines.txt):
ab.qq
1
2
3
cd.qq
3
4
5
ef.qq
7
8
9我试图从每4行移动到excel/csv文件中的不同列,基本上是使用这个bash脚本打印的:
#!/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文件中,而且任何其他产生结果的方法都是很好的(没有拆分/粘贴)。
发布于 2021-03-26 00:31:40
rs (reshape)实用程序起源于BSD,对于这类东西非常有用。
例如:
$ 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输出,可以使用
$ rs -etC, 4 0 < lines.txt
ab.qq,cd.qq,ef.qq,
1,3,7,
2,4,8,
3,5,9,rs可以从Ubuntu存储库中获得同名的包。
或者,您可以在awk中这样做:
$ 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,9https://askubuntu.com/questions/1326152
复制相似问题