将第一个文件的每行第一个字复制到第二个文件

将第一个文件的每行第一个字复制到第二个文件

问题描述:

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

一种方法是使用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