Использование массива из выходного файла в оболочке bash - PullRequest
0 голосов
/ 06 февраля 2019

Я нуждаюсь в использовании массива для установки значения переменной для дальнейших манипуляций из выходного файла.

сценарий:

> 1. fetch the list from database 
> 2. trim the column using sed to a file named x.txt (got specific value as that is required)
> 3. this file x.txt has the below output as
10000 
20000 
30000
> 4. I need to set a variable and assign the above values to it.  
A=10000 
B=20000 
C=30000
> 5. I can invoke this variable A,B,C for further manipulations.

Пожалуйста, дайте мне знать, как определить массив, присваивающий его переменной из выходного файла.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

В bash (начиная с версии 4.x), и вы можете использовать команду mapfile:

mapfile -t myArray < file.txt

см. https://stackoverflow.com/a/30988704/10622916

или другой ответ для более старых версий bash: https://stackoverflow.com/a/46225812/10622916

0 голосов
/ 06 февраля 2019

Я не большой сторонник использования массивов в bash (если ваш код достаточно сложен, чтобы нуждаться в массиве, он достаточно сложен, чтобы нуждаться в более надежном языке), но вы можете сделать:

$ unset a
$ unset i
$ declare -a a
$ while read line; do a[$((i++))]="$line"; done < x.txt

(Я оставил интерактивное приглашение на месте. Удалите начальный $, если вы хотите поместить это в сценарий.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...