▼すべてを開く。
▲すべてを閉じる。
$ 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 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つのファイルの共通する行同士を結合する。
$ 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 , 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 -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
$ 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 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」を指示すると、それぞれのファイルの内容を行単位で結合して表示する。ファイル間の区切り文字にはタブが使われる。
$ 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 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行にまとめて表示する。行の中の文字列の区切り文字にはタブが使われる。