在不同的列中写入变量?

时间:2013-05-15 10:42:21

标签: linux bash shell

我想将只有一列的文件转换为具有不同列的文件。 在这个初始文件中,我有4个变量。每个变量写10行,我想有4列10行。

图形:

我有什么:

1
1
2
2
3
3
4
4

我想拥有什么:

1 2 3 4
1 2 3 4

2 个答案:

答案 0 :(得分:0)

这就是我想出的:

#!/bin/bash
rows=$(wc -l $1 | cut -d " " -f 1)
elements=$(uniq $1 | wc -l)
list=$(sort -u $1)
i=0
while [ $i -lt $(($rows/$elements)) ]
do
         echo $list
         ((i++))
done

将其保存到transpose.sh(例如),将其设为可执行文件chmod +x transpose.sh并将其称为./transpose.sh input.txt

答案 1 :(得分:0)

如果将变量行保存到各自的文件中,则可以使用paste

$ # generating example files:
$ seq 1 10 > file1
$ seq 11 20 > file2
$ seq 21 30 > file3
$ seq 31 40 > file4
$ # showing contents of the files:
$ cat file{1..4}
1 # first file
2
3
4
5
6
7
8
9
10
11 # second file
12
13
14
15
16
17
18
19
20
21 # third file
22
23
24
25
26
27
28
29
30
31 # fourth file
32
33
34
35
36
37
38
39
40
$ paste file{1..4}
1   11  21  31
2   12  22  32
3   13  23  33
4   14  24  34
5   15  25  35
6   16  26  36
7   17  27  37
8   18  28  38
9   19  29  39
10  20  30  40
相关问题