Я ищу способ добавления элементов из определенного столбца в файле в массив, используя BASH. Столбцы разделены табуляцией, например:
Файл (test.txt) со значениями:
- Это мое имя 3
- Имя Рю
- Элемент списка
- Элемент списка 2b. et c et c
Я использую:
element=$(cat test.txt | awk -F'\t' '{print $2}' | sort -u)
arr=()
arr=+( "$element" )
Что, кажется, работает вплоть до добавления в массив. Когда я повторяю массив, он принимает «Это мое имя» как четыре отдельных элемента. Поэтому, когда я использую оператор select, он не распознает элементы целиком. то есть он возвращает список, такой как: 1. Это 2. является 3. моим 4. именем 5. Имя
Единственный способ, которым я могу думать, это использовать sed перед добавлением в массив, чтобы заменить пространство на например, подчеркивание, а затем удалить его на более позднем этапе. Однако если файл действительно содержит подчеркивание, это повлияет на него.
Я бы хотел, чтобы мое предложение select возвращало список, такой как:
- Это мое имя
- Name
Когда я перебираю массив, все элементы там. Однако, когда я использую команду select для создания меню с этими элементами, элементы с белым пространством считываются как отдельные элементы. cat мой массив дает Это мое имя Имя select x в массиве дает мне 1. Это 2. является 3. моим 4. именем 5. Имя
Мне нужна команда выбора, чтобы дать мне
1. Это мое имя
2. Имя