Linux joinコマンド

Linux 命令大全Linux コマンド大全

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 命令大全Linux コマンド大全

その他の拡張