Za predpokladu, že rjp2tif
príkaz vráti súbor-cesta na štandardný výstup, a vy chcete prejsť tento výstup ako pravidelné CLI argument pre iný príkaz, ktorý môže mať záujem v xargs
príkaz. Ale všimnite si, že vo všeobecnom prípade môže zasiahnuť nejaký problém, ak súbor-cesta obsahuje medzery, alebo tak:
Prečítajte si priestor, kartu newline a koniec-súbor s oddeľovačmi argumenty zo štandardného vstupu a vykonanie zadaného pomôcka s ich ako argumenty.
Argumenty sú zvyčajne dlhý zoznam mien súborov (generovaná ls
alebo find
napríklad), ktoré si prešiel na xargs
cez potrubie.
Takže v tomto prípade, za predpokladu, že každý súbor-cesta trvá len jeden riadok (čo je zrejme prípade, ak tam je len jeden riadok celkovo), môžete použiť nasledujúce NUL
-na základe tip spolieha na tr
príkaz.
Je tu príkaz, ktorý by ste získať:
rjp2tif /path/to/rjpeg | tr '\n' '\0' | xargs -0 open -a imagej
Poznámka: mám GNU/Linux, OS, takže môžete mi prosím potvrdiť, je to práca pod macOS?
EZP, nižšie je komplexný shell kód umožňuje jeden test dva rôzne režimy xargs
: generovanie jedného príkazu na líniu-argument (-n1
), alebo jeden príkaz so všetkými line-argumenty v jednom kole:
$ printf 'one \ntwo\nthree and four' | tr '\n' '\0' | xargs -0 -n1 \
bash -c 'printf "Run "; for a; do printf "\"$a\" "; done; echo' bash
Run "one "
Run "two"
Run "three and four"
$ printf 'one \ntwo\nthree and four' | tr '\n' '\0' | xargs -0 \
bash -c 'printf "Run "; for a; do printf "\"$a\" "; done; echo' bash
Run "one " "two" "three and four"
######################################
# or alternatively (with no for loop):
######################################
$ printf 'one \ntwo\nthree and four' | tr '\n' '\0' | xargs -0 -n1 \
bash -c 'printf "Run "; printf "\"%s\" " "$@"; echo' bash
Run "one "
Run "two"
Run "three and four"
$ printf 'one \ntwo\nthree and four' | tr '\n' '\0' | xargs -0 \
bash -c 'printf "Run "; printf "\"%s\" " "$@"; echo' bash
Run "one " "two" "three and four"
tr
príkaz máte vyššie sa práce na macOS, vďaka. Zistil som, že-t
možnosť (stopy) naxargs
je užitočné, ak chcete ukázať, čoxargs
sa na povel. V tomto prípade, keďpath/to/tiff
prešiel doxargs
cez potrubie,xargs
rearranges príkazopen -a imagej path/to/tiff
. Veľmi užitočné.