Fórum Root.cz
Hlavní témata => Software => Téma založeno: Arthur 20. 09. 2012, 14:55:22
-
Prosím o pomoc, určitě to má snadné řešení:
potřebuju pomocí xargs spustit příkaz, který akceptuje argumenty (množinu souborů) na začátku (ne na konci jak se defaultně předpokládá).
find <neco nejak> | xargs -I {} prikaz {} <parametry na konci>
tohle spusti prikaz opakovane pro kazdy argument zvlast, ale ja potrebuju aby ho to spustilo jednou se vsemi najednou
find <neco nejak> | awk 'BEGIN{ORS=" "}{print}' | xargs -I {} prikaz {} <parametry na konci>
timhle zase argumenty propasiruju jako jeden retezec oddelenych nazvu, ale to ten prikaz vezme jako jeden dlouhy nazev souboru misto mnoziny souboru
Díky
-
(find; echo parametry) | xargs prikaz ;)
-
ano, timhle: 'find | awk{print}{print "params"} | xargs prikaz' jsem to obesel uz na zacatku, takze vlastne o nic moc nejde. Akorat se mi nezda, ze by to neslo udelat "ciste", obzvlaste, kdyz jsem vygoogloval stejny dotaz se stejnym resenim jako jsem neuspesne zkousel a pritom to tam vsem zjevne funguje ... :-|
-
Ale tohle je čisté řešení. Teda tak čisté, jak čisté je xargs :-)
-
No tak jo no :-)
-
Me to moc ciste neprijde, co se stane az dojde delka prikazove radky a xargs to rozdeli na vic vyvolani?
Mozna by to chtelo nejaky miniskript 'prikaz "$@" parametry', ale to mi pri preteceni commandline taky moc nepomuze ... leda si rucne zjistit maximum a do xargs predhodit limit uz zmenseny (na to tam paremetr je).