Uso de readarray e tac

1

Eu tenho um arquivo contendo "linhas" de texto, por enquanto apenas duas linhas. Eu preciso criar uma matriz invertida dessas linhas - estilo FIFO.

Usar "readarray" dessa maneira funciona bem:

readarray -t FileArray < "$PWD$DEBUG_DIR$DEBUG_MENU"

Quando tento "inverter" o arquivo, fico sem palavras:

readarray -t FileArray < tac "$PWD$DEBUG_DIR$DEBUG_MENU"

Ainda estou aprendendo sobre substituição e é óbvio que não estou usando o comando tac corretamente. Eu tentei diferente "sintaxe" sem sucesso.

    
por Jan Hus 10.09.2018 / 15:35

1 resposta

3

O redirecionamento de entrada (como em cat < file ) significa que o shell está abrindo o arquivo de entrada e grava seu conteúdo na entrada padrão de outro processo. Não é possível apenas colocar um comando após < .

Mas você pode usar Substituição de processos para criar um descritor de arquivo a partir da saída do comando usando a seguinte sintaxe:

<(some_command)

Isso é semelhante ao uso de saída de um comando como uma variável usando $(some_command) .

Tente isto:

readarray -t FileArray < <(tac "$PWD$DEBUG_DIR$DEBUG_MENU")
    
por 10.09.2018 / 15:44