私は2つのファイルを持っています。
最初のファイル:
45 76
77 23
12 93
77 10
82 92
2 番目のファイル:
89
37
84
10
93
このように1つのファイルにまとめたい
89 45 76
37 77 23
84 12 93
10 77 10
93 82 92
私は2つのファイルを持っています。
最初のファイル:
45 76
77 23
12 93
77 10
82 92
2 番目のファイル:
89
37
84
10
93
このように1つのファイルにまとめたい
89 45 76
37 77 23
84 12 93
10 77 10
93 82 92
とpaste
:
$ paste file2 file1
89 45 76
37 77 23
84 12 93
10 77 10
93 82 92
とpr
:
$ pr -mts' ' file2 file1
89 45 76
37 77 23
84 12 93
10 77 10
93 82 92
とawk
:
$ awk 'NR==FNR{a[NR]=$0;next}{print a[FNR],$0}' OFS=' ' file2 file1
89 45 76
37 77 23
84 12 93
10 77 10
93 82 92
paste
これを解決する標準的なツールです。ここに純粋なbashの代替があります
while IFS= read -r -u 3 line1 && IFS= read -r -u 4 line2;
do
printf "%s %s\n" "$line2" "$line1";
done 3<first 4<second
これを試すことができます:-
$ join file1.txt file2.txt
ファイルがソートされていない場合は、次のようにしてください。
$ paste file2.txt file1.txt