
Итак, у меня есть текстовый файл с именем sortedtime.txt, содержащий отсортированные десятичные и целые числа, перечисленные построчно:
12.6
13.7
...
154
1864
Мне нужен скрипт оболочки, который будет считывать эти числа и добавлять их в одномерный массив построчно. Код, который у меня есть для этого, приведен ниже:
with open('sortedtime.txt') as data:
timearray = data.readlines()
К сожалению, я постоянно получаю ошибку при попытке выполнить код. Мне нужно иметь эти числа как элементы в массиве, чтобы позже построить cdf данных.
решение1
Предполагая, что вы имеете в видумассив оболочек, обратите внимание, что не все оболочки поддерживают массивы. Если ограничиться оболочками типа Bourne, то те, которые поддерживают массивы (в хронологическом порядке), это ksh
, bash
, zsh
и yash
. python
(код, который вы привели, выглядит как python
код) — это не то, что мы обычно называем оболочкой.
Из них единственными оболочками, которые поддерживают арифметику с плавающей точкой, являются ksh93
, zsh
и yash
.
Во всех трех случаях, и предполагая, что входные данные содержат только числа с плавающей точкой, разделенные символом новой строки, пробелом или табуляцией, вы можете сделать следующее:
array=($(cat file))
Однако синтаксис доступа к элементам массива во всех трех вариантах различен. См. "Тест на поддержку массива оболочкой" для различий в поддержке массивов в различных оболочках.