Jestem na Ubuntu. Skopiowałem kilka argumentów (oddzielonych znakiem nowej linii) i mogę użyć Xsel, aby je wydrukować w ten sposób
$ xsel
arg1
arg2
arg3
arg4
...
Teraz chcę użyć każdego z tych argumentów do innego polecenia i wykonać to polecenie tyle razy, ile jest argumentów.
Więc próbowałem
$ xsel | mycommand "constantArgument" $1
Wykonano to jednak mycommand
tylko dla pierwszego argumentu. Jak mogę go wykonać dla każdego argumentu?
Odpowiedzi:
Możesz po prostu użyć
xargs
-n1
oznacza jeden argument dla mycommand, ale jest to tylko sucha próba, pokaże, co będzie uruchomione, aby go usunąćecho
Dla stałego argumentu
źródło
xsel | xargs -n1 echo mycommand -more-arg
xsel | xargs -n2 echo mycommand
dwa arg na polecenieLub coś podobnego. Możesz także użyć
xargs
, która jest bardzo potężnym poleceniem do manipulacji argumentami wiersza poleceń.źródło
Aby trochę dostosować:
Możesz usunąć
-noexecute
flagę, gdy zobaczysz, jak to działa.Jeśli to działa, możesz
sh
całkowicie upuścić i zrobić to zamiast tego:Lub szybciej:
Tak czy inaczej jest łatwe i zrobi to.
źródło