Эхо к переменной из файла - PullRequest
0 голосов
/ 23 марта 2020

У меня есть список с компонентами, которые выглядят так:

file.txt:

example-component-test 1.0.0 [dev1] chld78269.ch.test.net
response-enricher 1.1.2 [dev1] chld78269.ch.test.net
example-another-component 1.0.0 [dev1] chld78269.ch.test.net

На данный момент я извлекаю из файла название компонента и версию с помощью этих команд:

component=`echo file.txt | sed 's/\S*\s*\(.*\)/\1/'`

Что я хотел бы сделать, так это то, что имя также содержит среду, поэтому file.txt будет выглядеть следующим образом:

example-component-test 1.0.0 [dev1] chld78269.ch.test.net
response-enricher 1.1.2 [dev1] chld78269.ch.test.net
example-another-component 1.0.0 [dev1] chld78269.ch.test.net

Мне нужен sed команда для извлечения этой последней части. [dev1] chld78269.ch.test.net

Спасибо.

1 Ответ

2 голосов
/ 23 марта 2020

Вы можете использовать встроенную функцию read bash, чтобы прочитать каждую строку файла и сохранить ее как переменные оболочки (используя переменную оболочки IFS для управления где разделить строку на ):

while IFS=" " read -r package version env; do
    echo "package $package version $version uses $env"
done < file.txt

. В результате вы получите:

package example-component-test version 1.0.0 uses [dev1] chld78269.ch.test.net
package response-enricher version 1.1.2 uses [dev1] chld78269.ch.test.net
package example-another-component version 1.0.0 uses [dev1] chld78269.ch.test.net

из вашего файла примера.

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