【发布时间】:2014-02-25 06:51:14
【问题描述】:
我有以下文件
CHO 1
4096
26 20 0 0 0 0 0 0 0 0
0 0 0 0 0 3 5 15 8 14
9 7 13 10 12 9 5 3 3 2
2 0 0 0 0 0 0 1 1 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 1 0 0 0 0 0
6 8 5 5 7 13 13 33 23 29
44 51 56 42 39 31 21 24 18 18
18 30 44 43 51 67 102 110 130 130
100 96 87 49 25 16 4 1 1 0
0 0 0 0 0 0
我想要做的是将4096 之后的所有条目放在一列中。所需的输出如下
1 26
2 20
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
...
4096 0
我不知道如何使用 awk。例如,我尝试使用
将它们放在一行中awk -F'\n' '{if(NR == 1) {printf $0} else {printf $0}}' file
但我不知道如何将它们放到一列。更不用说第一个条目不如预期的事实了。
CHO 1409626 20 0 0 0 0 0 0 0 0 0 0 0 0 0 3 5
知道如何获得所需的两列输出吗?任何帮助都非常受欢迎!!!
【问题讨论】:
-
您可以将它们全部放在同一行并循环遍历字符串。
-
@fedorqui:感谢您的回答。我已经尝试将它们放在一行中,但我不知道如何使这一行成为一列。
-
您希望第二行指示的条目数在不存在数据的情况下配对为零吗?还是只是对存在的数据进行排序?
-
@potong :我希望在第 2 行之后(即从第 3 行开始)将所有数据放在一列中,同时有一个新列将“计算”从 1 开始的条目数。