
Portanto, tenho este arquivo de texto chamado sortedtime.txt contendo decimais e números inteiros classificados listados linha por linha:
12.6
13.7
...
154
1864
Preciso de um script de shell que leia esses números e os adicione em uma matriz 1D linha por linha. O código que tenho para isso está abaixo:
with open('sortedtime.txt') as data:
timearray = data.readlines()
Infelizmente, continuo recebendo um erro ao tentar executar o código. Preciso ser capaz de ter esses números como elementos em uma matriz para posteriormente traçar um cdf dos dados.
Responder1
Supondo que você queira dizer ummatriz de shell, observe que nem todos os shells suportam matrizes. Se limitarmos aos shells do tipo Bourne, aqueles que suportam arrays (em ordem cronológica) são ksh
,, bash
e . (o código que você forneceu parece código) não é o que geralmente chamamos de shell.zsh
yash
python
python
Destes, os únicos shells que suportam aritmética de ponto flutuante são ksh93
, zsh
e yash
.
Em todos os 3, e assumindo que a entrada contém apenas os números de ponto flutuante separados por nova linha, espaço ou tabulação, você pode fazer:
array=($(cat file))
A sintaxe para acessar os elementos da matriz é diferente nos três. Ver "Teste o suporte de array por shell"para diferenças no suporte de array em vários shells.