Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: [РЕШЕНО]Bash: подстановка значений в команду  (Прочитано 1612 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Punko

  • Автор темы
  • Гость
Итак, подробнее:
имеется список значений, который получен при помощи grep и awk.
имеет вид
commN
commN-1
..
comm2
comm
Пронумерованы именно так - по убыванию и последний не имеет номера.

цель - подставить каждое значение с номером в командe (задать как аргумент)
programm commN
Проблема в чём - хочу сделать максимально красиво, а сам могу придумать только вариант с использованием временного файла, который считывать построчно.

Помню, что была функция встроенная, что-то типа for each.
map или как-то так.

Подскажите, пожалуйста!

З.Ы. если проще сделать питоном - сгодится.
« Последнее редактирование: 09 Июня 2016, 18:16:02 от Punko »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Bash: подстановка значений в команду
« Ответ #1 : 09 Июня 2016, 08:48:25 »
Список значений в каком виде? Если просто «выхлоп» grep:while read ARG ; do
    prog $ARG
done < <(grep … )
Или если сomm без пробеловgrep … | xargs -n1 prog
« Последнее редактирование: 09 Июня 2016, 08:53:18 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Punko

  • Автор темы
  • Гость
Re: Bash: подстановка значений в команду
« Ответ #2 : 09 Июня 2016, 12:28:15 »
Azure, Спасибо!
while то, что нужно, всё получилось.

А xargs не подходит,так как вывод grep пихается в середину команды, это составная часть пути.
Или я недочитал манул, но вроде она умеет только в конец аргумент подставлять.

Оффлайн Self-Perfection

  • Активист
  • *
  • Сообщений: 331
  • Arch linux, KDE
    • Просмотр профиля
Re: Bash: подстановка значений в команду
« Ответ #3 : 09 Июня 2016, 14:56:28 »
Конечно недочитали

$ seq 5 | xargs -I{} echo {} blabla
1 blabla
2 blabla
3 blabla
4 blabla
5 blabla
Читайте документацию, наставницу вашу!
Памятка по описанию проблем:
Для решения [такой-то задачи] делаю [такие-то действия], но вместо [ожидаемый результат] получаю [описание отличий].

Punko

  • Автор темы
  • Гость
Re: Bash: подстановка значений в команду
« Ответ #4 : 09 Июня 2016, 17:22:27 »
Self-Perfection,
docker cp OMS.war ${ARG}:/usr/local/tomcat/webapps/OMS.warвместо ARG подставит?
пока что работает с while отлично, как подсказал Azure.

Оффлайн Self-Perfection

  • Активист
  • *
  • Сообщений: 331
  • Arch linux, KDE
    • Просмотр профиля
Re: Bash: подстановка значений в команду
« Ответ #5 : 09 Июня 2016, 17:35:20 »
да. Пример с вашей командой
echo $INPUT | xargs -I{CONTAINER} docker cp OMS.war {CONTAINER}:/usr/local/tomcat/webapps/OMS.war
Читайте документацию, наставницу вашу!
Памятка по описанию проблем:
Для решения [такой-то задачи] делаю [такие-то действия], но вместо [ожидаемый результат] получаю [описание отличий].

Punko

  • Автор темы
  • Гость
Re: Bash: подстановка значений в команду
« Ответ #6 : 09 Июня 2016, 18:15:43 »
Self-Perfection, ок, спасибо, буду посмотреть.

 

Страница сгенерирована за 0.053 секунд. Запросов: 25.