2013-05-15 37 views
-2

我想將只有一列的文件轉換爲不同列的文件。 在這個初始文件中,我有4個變量。每個變量寫10行,我想有10行的4列。將變量寫入不同的列?

圖形:

我有什麼:

1 
1 
2 
2 
3 
3 
4 
4 

我想什麼有:

1 2 3 4 
1 2 3 4 
+0

因此,你有一列,你想要一列與不同的排序?還是有缺口? – Sarien

+0

我試圖用於我在$ var1;做; echo $ i;完成。而且我也嘗試了「回聲」的不同語法。 – bernatpi

+0

我想要在一列中的每個變量,但列應該在同一行。 – bernatpi

回答

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 
+0

非常感謝!它的工作非常好! – bernatpi

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

+0

我有4個變量($ var1,$ var2,$ var3和$ var4)。每個變量有10行。我的問題是,如果可以寫入列中的每個變量,獲得10行4列。謝謝 – bernatpi