すべてを

▼開く

閉じる▲

2つのファイルを共通行で結合する

○ファイル「31_1.txt」と「31_2.txt」を結合する

catコマンドで結合する2つのファイルを見る
$ cat 31_1.txt
Route31 Weekday
12    21 42 
13    02 30 59 
14    19 37 56 
15    14 32 49 
16    13 41 
17    09 30 50 
18    11 30 50 
19    11 30 50 
20    09 26 49 
21    15 40 
22    05 
23
$ cat 31_2.txt
Route31 Sat.
12    21 42 
13    02 30 59 
14    19 37 56 
15    14 32 49 
16    13 41 
17    09 30 50 
18    11 30 50 
19    11 30 50 
20    09 26 49 
21    15 40 
22    05 
23     

joinコマンドで結合する2つのファイルを指定する
$ join 31_1.txt  31_2.txt
Route31 Weekday Sat.
12 21 42  21 42
13 02 30 59  02 30 59
14 19 37 56  19 37 56
15 14 32 49  14 32 49
16 13 41  13 41
17 09 30 50  09 30 50
18 11 30 50  11 30 50
19 11 30 50  11 30 50
20 09 26 49  09 26 49
21 15 40  15 40
22 05  05
23

joinコマンドで、結合する2つのファイル「31_1.txt」と「31_2.txt」を指定すると、2つのファイルの共通する行同士を結合する。

2つのファイルを行単位で結合し、ファイルの区切りに指定文字を使う

○ファイル「July.txt」と「Aug.txt」を行単位で結合し、ファイルの区切り文字に「,」を使う

catコマンドで結合するファイルを見る
$ cat July.txt
July    Sunset
1       19:16
2       19:16
3       19:16
4       19:16
5       19:16
$ cat Aug.txt
Aug.    Sunset
1       19:02
2       19:01
3       19:00
4       18:59
5       18:58

pasteコマンドで-dオプション、区切り文字、結合するファイルを指定する
$ paste -d , July.txt Aug.txt
July    Sunset  ,Aug.   Sunset
1       19:16,1 19:02
2       19:16,2 19:01
3       19:16,3 19:00
4       19:16,4 18:59
5       19:16,5 18:58

pasteコマンドで-dオプション、区切り文字「,」、結合するファイル「July.txt」、「Aug.txt」を指示すると、それぞれのファイルの内容を区切り文字「,」を使って結合する。この区切り文字は、1文字のみが有効である。

●区切り文字に使う文字に注意する

区切り文字に特殊文字を使うと、シェルがその文字を解釈してしまい、意図したコマンド実行結果を得られない。そのため、特殊文字を使う場合は二重引用符「"」で囲む。

「(」がシェルに解釈されてコマンドが実行されない。
$ paste -d ( July.txt Aug.txt
-bash: syntax error near unexpected token `('

「(」が正しくpasteコマンドに渡された
$ paste -d "(" July.txt Aug.txt
July    Sunset  (Aug.   Sunset
1       19:16(1 19:02
2       19:16(2 19:01
3       19:16(3 19:00
4       19:16(4 18:59
5       19:16(5 18:58

2つのファイルを行単位で結合する

○ファイル「July.txt」と「Aug.txt」を行単位で結合する

catコマンドで結合するファイルを見る
$ cat July.txt
July    Sunset
1       19:16
2       19:16
3       19:16
4       19:16
5       19:16
$ cat Aug.txt
Aug.    Sunset
1       19:02
2       19:01
3       19:00
4       18:59
5       18:58

pasteコマンドで結合するファイルを指定する
$ paste July.txt Aug.txt
July    Sunset          Aug.    Sunset
1       19:16   1       19:02
2       19:16   2       19:01
3       19:16   3       19:00
4       19:16   4       18:59
5       19:16   5       18:58

pasteコマンドで結合するファイル「July.txt」、「Aug.txt」を指示すると、それぞれのファイルの内容を行単位で結合して表示する。ファイル間の区切り文字にはタブが使われる。

ファイルを1行にまとめて2つのファイルを結合する

○ファイル「num.txt」と「temp.txt」を1行にまとめて結合する

catコマンドで結合するファイルを見る
$ cat num.txt
0
1
2
3
4
5
$ cat temp.txt
24.3^c
24.7^c
24.9^c
25.2^c
25.5^c
25.8^c
26.3^c

pasteコマンドで-sオプション、結合するファイルを指定する
$ paste -s num.txt temp.txt
0       1       2       3       4       5       6       
24.3^c  24.7^c  24.9^c  25.2^c  25.5^c  25.8^c  26.3^c  

pasteコマンドで-sオプション、結合するファイル「num.txt」、「temp.txt」を指定すると、それぞれのファイルの内容を1行にまとめて表示する。行の中の文字列の区切り文字にはタブが使われる。