将第一个文件的每一行中的第一个单词复制到第二个文件

时间:2013-03-07 12:41:42

标签: shell copy vi

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

1 个答案:

答案 0 :(得分: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旧版本不支持process substitution,则可以执行以下操作:

$ 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