Я на Ubuntu. Я скопировал некоторые аргументы (разделенные символом новой строки), и я могу использовать xsel, чтобы распечатать их следующим образом
$ xsel
arg1
arg2
arg3
arg4
...
Теперь я хочу использовать каждый из этих аргументов для другой команды и выполнять эту команду столько раз, сколько есть аргументов.
Так я попробовал
$ xsel | mycommand "constantArgument" $1
Однако это выполняется mycommand
только для первого аргумента. Как я могу выполнить это для каждого аргумента?
Ответы:
Вы можете просто использовать
xargs
-n1
означает один аргумент для mycommand, но это просто пробный запуск, он покажет, что будет запущен, чтобы запустить его удалитьecho
Для постоянного аргумента
источник
xsel | xargs -n1 echo mycommand -more-arg
xsel | xargs -n2 echo mycommand
два аргумента за командуИли что-то подобное. Вы также можете использовать
xargs
очень мощную команду для манипулирования аргументами командной строки.источник
Для небольшой настраиваемости:
Вы можете удалить
-noexecute
флаг, когда увидите, как он работает.Если это работает для вас, вы можете
sh
полностью отказаться и сделать это вместо этого:Или быстрее:
В любом случае легко и будет делать это.
источник