Bash читая txt файл и храня в массиве

Можно попробовать MP3Diags. Это имеет огромное количество тестов и может решить много проблем в файлах MP3.

5
03.04.2013, 00:27
2 ответа
IFS=$'\n' a=($(cat phonebook.txt))
for i in $(seq ${#a[*]}); do
    [[ ${a[$i-1]} = $name ]] && echo "${a[$i]}"
done

В Bash 4 IFS=$'\n' a=($(cat phonebook.txt)) может быть заменен mapfile -t a < phonebook.txt.

grep-A1 печатает одну строку после соответствия.-x отключает regex как-F, но он только соответствует полным строкам.

grep -x "$name" -A1 phonebook.txt | tail -n1
8
27.01.2020, 20:35
  • 1
    Можно хотеть проверить содержание файла сначала.Вам решать. –  Wildcard 20.04.2017, 06:33
index=0
while read line; do
  myArray[index]="$line"
done < inputfile

Более новые версии удара поддерживают ассоциативные массивы. Это помогло бы:

declare -A myArray
while read name; do
  read number
  myArray[name]="$number"
done < inputfile

echo ${myArray[name]}
2
27.01.2020, 20:35
  • 1
    и как Вы возвратили бы объект myArray [имя + 1]? –  Aaron Ullal 03.04.2013, 00:43
  • 2
    В индексируемом примере, у Вас уже было решение таким образом, я не скопировал его. –  Hauke Laging 03.04.2013, 01:36
  • 3
    Май я быть неправильным, но использование такого канала не сделал бы myArray "невидимую операцию" к за пределами цикла??? –  Frederic Yesid Peña Sánchez 20.01.2015, 00:27
  • 4
    @FredericYesidPeñaSánchez Ни вопрос, ни мой ответ содержит конвейер таким образом, я не знаю то, о чем Вы говорите. –  Hauke Laging 20.01.2015, 01:26
  • 5
    , "в то время как считанное имя"; смотрит на меня как конвейер, так или иначе, я нашел, "объявляют, что массив-a" фиксирует проблемы, которые я получил прежде, Спасибо!!! +1 –  Frederic Yesid Peña Sánchez 20.01.2015, 01:31

Теги

Похожие вопросы