Isso captura as informações desejadas da última linha de file
:
$ IFS=, read -r a b c var_1 var_2 d e f h var_3 extra < <(tail -n1 file)
$ echo $var_1 $var_2 $var_3
TMX6BP 075 179583
Como funciona
-
IFS=,
Isso define temporariamente o separador de campo para uma vírgula.
-
read -r a b c var_1 var_2 d e f h var_3 extra
Isto lê os campos para as variáveis listadas. Você pode escolher qualquer nome que quiser.
Acima, o primeiro campo é atribuído à variável do shell
a
, o segundo aob
, etc. Tudo o que sobrou depois quevar_3
é atribuído à variável do shellextra
. -
< <(tail -n1 file)
Isso fornece a última linha de
file
como entrada padrão para o comandoread
. O primeiro<
é o símbolo da shell para redirecionamento. A construção<(...)
é chamada de substituição de processo. O espaço entre o primeiro e o segundo<
é essencial .