O utilitário comm
é usado para comparar linhas inteiras entre arquivos. O que você quer fazer é participar de um campo específico.
$ join -t, file2 file1
number_123,hold,this car is under maintenance
number_345,done,this car checked is done
Isso pressupõe que os dois arquivos sejam classificados no campo de junção (a primeira coluna delimitada por vírgulas em cada arquivo).
Se os arquivos não estiverem classificados, você poderá classificá-los previamente usando
sort -t, -k1,1 -o file1 file1
sort -t, -k1,1 -o file2 file2
Em ksh93
, bash
ou zsh
, você também pode fazer o tipo "on the fly":
join -t, <( sort -t, -k1,1 file2 ) <( sort -t, -k1,1 file1 )