0

我有两个行数相等的文件。我必须将第一个文件中每一行的第一个单词放在第二个文件中每一行的开头。我想知道如何使用 vi 编辑器或任何其他脚本语言来做到这一点?

4

1 回答 1

2

一种方法是使用paste

$ cat file1
one file 1
two file 1
three file 1
four file 1
five file 1

$ cat file2
1 file 2
2 file 2
3 file 2
4 file 2
5 file 2

$ paste -d' ' <(awk '{print $1}' file1) file2
one 1 file 2
two 2 file 2
three 3 file 2
four 4 file 2

# Store changes back to file2
$ paste -d' ' <(awk '{print $1}' file1) file2 > tmp && mv tmp file2

如果您有bash不支持进程替换的旧版本,那么您可以执行以下操作:

$ awk '{print $1}' file1 | paste -d' ' - file2
one 1 file 2
two 2 file 2
three 3 file 2
four 4 file 2
five 5 file 2

您可以使用cut -d' ' -f1 file1而不是awk '{print $1}' file1.

于 2013-03-07T13:05:52.453 回答