Эхо к переменной из файла

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

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 ответ


Вы можете использовать встроенную команду 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

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


Есть идеи?

10000