Linux joinコマンド
Linux joinコマンドは、2つのファイル内で、指定したフィールドの内容が同じ行を結合します。
2つのファイル内で、指定したフィールドの内容が同じ行を見つけ出し、結合してから、標準出力に出力します。
構文
join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
パラメータ:
- -a<1または2> 元の出力内容に加えて、指定したファイル内で同じフィールドのない行も表示します。
- -e<文字列> [ファイル1]と[ファイル2]で指定したフィールドが見つからない場合、出力にオプションの文字列を埋め込みます。
- -iまたは--igore-case フィールドの内容を比較するとき、大文字と小文字の違いを無視します。
- -o<書式> 指定した書式に従って結果を表示します。
- -t<文字> フィールドの区切り文字を使用します。
- -v<1または2> -aと同じですが、ファイル内で同じフィールドのない行のみを表示します。
- -1<フィールド> [ファイル1]の指定したフィールドを結合します。
- -2<フィールド> [ファイル2]の指定したフィールドを結合します。
- --help ヘルプを表示します。
- --version バージョン情報を表示します。
例
2つのファイルを結合します。
joinコマンドを明確に理解するために、まずcatコマンドでファイルtestfile_1とtestfile_2の内容を表示します。
その後、デフォルトの方法で2つのファイルを比較し、2つのファイル内で指定したフィールドの内容が同じ行を結合します。ターミナルで次のコマンドを入力します:
join testfile_1 testfile_2
まず、testfile_1とtestfile_2のファイル内容を確認します:
$ cat testfile_1 #testfile_1文件中的内容 Hello 95 #例如,本例中第一列为姓名,第二列为数额 Linux 85 test 30 cmd@hdd-desktop:~$ cat testfile_2 #testfile_2文件中的内容 Hello 2005 #例如,本例中第一列为姓名,第二列为年份 Linux 2009 test 2006
次に、joinコマンドを使用して2つのファイルを結合します。結果は次のとおりです:
$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容 Hello 95 2005 #连接后显示的内容 Linux 85 2009 test 30 2006
ファイル1とファイル2の位置は、標準出力への結果に影響します。例えば、コマンド内の2つのファイルを入れ替えて、次のコマンドを入力します:
join testfile_2 testfile_1
最終的に標準出力の出力結果は次のように変化します:
$ join testfile_2 testfile_1 #改变文件顺序连接两个文件 Hello 2005 95 #连接后显示的内容 Linux 2009 85 test 2006 30その他の拡張
Linux コマンド大全