Pegue a entrada de um arquivo e armazene-os na variável

0

O script deve ler a entrada de um arquivo (por exemplo, input.txt), armazenar cada linha (N número de linhas) de um arquivo em uma variável separada e usar cada variável exclusivamente em locais diferentes.

Por exemplo, um arquivo tem 4 linhas UMA B C D estes devem ser armazenados em 4 variáveis.

    
por OdbovViktor 12.07.2018 / 13:36

2 respostas

0

o seguinte irá carregar cada linha de /tmp/file em uma matriz, então a linha 1 seria acessível através da variável ${array[0]} e assim por diante.

#!/bin/bash
IFS=$'\n' array=($(cat /tmp/file))
    
por 12.07.2018 / 15:32
0

Como Kusalananda aponta, isso soa como um problema x-y.

Uma possível solução awk para o seu problema seria:

awk 'BEGIN{ RS = ""; FS = "\n"}{print "First name:",$1,"Second name:",$2,"Org name",$3,"CN name:",$4}' input

Se você está usando variáveis de shell, eu acho que você precisa de algo assim:

#!/bin/bash

input=/path/to/input

mapfile -t array <"$input"

# If you don't have bash v3 use this instead of mapfile
# OLDIFS=$IFS
# IFS=$'\n'
# array=($(cat input))
# IFS=$OLDIFS

echo "First name: ${array[0]}, Second name: ${array[1]}, Org name: ${array[2]}, CN name: ${array[3]}"
    
por 12.07.2018 / 16:00