Agora mais e mais pessoas estão usando o sistema Linux , hoje irei apresentar o comando join para todos |
1. Introdução ao Comando
Os dois arquivos são unidos horizontalmente por produtos cartesianos de acordo com os mesmos campos especificados e enviados para a saída padrão. Por padrão, o separador de campo de junção é um espaço ou Tab. Ao ingressar, os dois arquivos precisam ser classificados de acordo com um determinado campo.
O produto cartesiano refere-se ao conjunto de pares ordenados formados pela combinação dos membros dos dois conjuntos X e Y. Por exemplo, o conjunto X = {a, b}, Y = {0,1,2}, então
X × Y = {(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)} Y × X = {(0, a ), (0, b), (1, a), (1, b), (2, a), (2, b)}
2. Formato de comando
join [OPTIONS] FILE1 FILE2
Quando FILE1 ou FILE2 é um hífen (os dois não podem ser-ao mesmo tempo), o conteúdo é lido da entrada padrão.
3. Descrição da opção
-a FILENUM Além de exibir o conteúdo de saída original, também exibe linhas que não possuem o mesmo campo no arquivo. O valor de FILENUM é 1 ou 2, que corresponde a FILE1 e FILE2 respectivamente. -E EMPTY Se a coluna especificada não puder ser encontrada em FILE1 e FILE2, a string na opção -i, --igore-case conteúdo da coluna de comparação é preenchida na saída Ignora maiúsculas e minúsculas quando -j FIELD é equivalente a -1 FIELD -2 FIELD -o FORMAT exibe o resultado no formato especificado -t CHAR especifica o caractere separador para colunas de entrada e saída -v FILENUM é semelhante a -a FILENUM, mas exibe apenas Linhas que não têm a mesma coluna no arquivo - 1 FIELD está conectado à coluna especificada por FILE1. FIELD leva 1 para a primeira coluna, 2 para a segunda coluna e assim por diante. -2 FIELD é conectado à coluna especificada por FILE2. FIELD leva 1 para a primeira coluna, 2 para a segunda coluna, e assim por diante. --Check-order opção padrão, verifica se o arquivo foi classificado --nocheck-order não verifica se o arquivo está classificado --help display help information e exit --version exibe informações da versão e sai
4. Exemplos comuns
(1) Para conectar dois arquivos, a primeira coluna é usada como o campo de conexão por padrão.
# arquivo1 O conteúdo é o seguinte lvlv dablelv 25 zhangsan San 12 # arquivo2 O conteúdo é o seguinte lvlv inglês 15 lvlv math 75 zhangsan math 14 zhouxun inglês 45 juntar arquivo1 arquivo2 lvlv dablelv 25 inglês 15 lvlv dablelv 25 matemática 75 zhangsan San 12 math 14
(2) Tomando os dois arquivos acima como exemplo, o display indica que a conexão deve ser realizada de acordo com o nome chinês na primeira coluna.
juntar -j 1 arquivo1 arquivo2 # 或 juntar -1 1 -2 1 arquivo1 arquivo2
(3) Se você deseja exibir linhas que não têm o mesmo campo, use -a1 ou -a2 para especificar as linhas do primeiro ou segundo arquivo a ser exibido.
join -a2 arquivo1 arquivo2 lvlv dablelv 25 inglês 15 lvlv dablelv 25 matemática 75 zhangsan San 12 matemática 14 zhouxun inglês 45 // mostra a linha sem correspondência no arquivo2