0

同じ行数の 2 つのファイルがあります。最初のファイルの各行の最初の単語を取得し、2 番目のファイルの各行の先頭に配置する必要があります。vi エディターまたはその他のスクリプト言語を使用してそれを行う方法を知りたいですか?

4

1 に答える 1

2

1 つの方法は、次を使用すること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 に答える