将第一个文件的每行第一个字复制到第二个文件
问题描述:
我有两个相同行数的文件。我必须将第一个文件中每行的第一个单词放在第二个文件的每一行的开头。我想知道如何使用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
。