1

给定一条线

    100  90  80  70  60  50  40  30  20  10   0

和一个文件

1
2
3
4
5
6
7
8
9
10
11

如何将这两者合并到一个文件中

100 1
90  2
80  3
70  4
60  5
50  6
40  7
30  8
20  9
10  10
0  11

我猜sedawk是我的朋友,但没有与他们的经验......

4

4 回答 4

3

或使用trand paste

$ tr ' ' '\n' < file1 | paste - file2
100     1
90      2
80      3
70      4
60      5
50      6
40      7
30      8
20      9
10      10
0       11
于 2013-02-14T16:20:57.157 回答
1
$ cat file2
1
2
3
4
5
6
7
8
9
10
11
$
$ cat file1
100    90        80  70      60 50 40 30 20 10 0
$
$ $ gawk '!NF{next} NR==FNR{a[++nr1]=$0;next} {print $0,a[++nr2]}' file2 RS="[[:space:]]+" file1
100 1
90 2
80 3
70 4
60 5
50 6
40 7
30 8
20 9
10 10
0 11
于 2013-02-14T16:19:12.960 回答
0

尝试这样做:

paste <(printf '%s\n' 100 90 80 70 60 50 40 30 20 10 0) file.txt

在这张照片中paste流程替代&printf是你的朋友 =)

输出

100     1
90      2
80      3
70      4
60      5
50      6
40      7
30      8
20      9
10      10
0       11
于 2013-02-14T16:27:53.310 回答
0

另一个awk:

awk '{if(NR==1) split($0,N); else print N[FNR], $0}' file1 file2
于 2013-02-14T22:10:55.467 回答