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