मान rjp2tif
आदेश रिटर्न एक फ़ाइल पथ में मानक उत्पादन, और आप चाहते हैं पारित करने के लिए इस उत्पादन के रूप में एक नियमित रूप से सीएलआई तर्क करने के लिए एक और आदेश, आप में रुचि हो सकती है xargs
आदेश । लेकिन ध्यान दें कि सामान्य मामले में, आप हिट हो सकती है कुछ मुद्दा है अगर फ़ाइल पथ शामिल हैं रिक्त स्थान या तो:
पढ़ें स्पेस, टैब, नई और अंत-के-सीमांकित फ़ाइल तर्कों से मानक इनपुट और निष्पादित निर्दिष्ट उपयोगिता के साथ उन्हें तर्क के रूप में.
तर्क आम तौर पर कर रहे हैं की एक लंबी सूची फ़ाइल नाम (द्वारा उत्पन्न ls
या find
, उदाहरण के लिए) मिलता है कि पारित करने के लिए xargs
के माध्यम से एक पाइप.
तो इस मामले में, मान प्रत्येक फ़ाइल पथ केवल एक लाइन (जो जाहिर है, के मामले में अगर वहाँ केवल एक ही लाइन कुल मिलाकर), आप का उपयोग कर सकते हैं निम्नलिखित NUL
-आधारित सुझाव पर निर्भर है tr
आदेश ।
यहाँ आदेश है, आप चाहते हैं को प्राप्त:
rjp2tif /path/to/rjpeg | tr '\n' '\0' | xargs -0 open -a imagej
नोट: मैं एक जीएनयू/लिनक्स ओएस, तो आप कर सकते हैं कृपया पुष्टि करें कि यह काम करता है के तहत macOS?
FTR, नीचे एक व्यापक शैल कोड की अनुमति के लिए एक परीक्षण के दो अलग मोड xargs
: जनरेट कर रहा है एक कमांड लाइन प्रति-तर्क (-n1
है ), या एक एकल आदेश के साथ सभी लाइन तर्क, एक ही बार में:
$ 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
आदेश में आप ऊपर पर काम करता है macOS, धन्यवाद. मैंने पाया है कि-t
विकल्प (ट्रेस) के लिएxargs
उपयोगी है क्या दिखाने के लिएxargs
करता है करने के लिए कमांड. मामले में यहाँ है, जबpath/to/tiff
पारित कर दिया है करने के लिएxargs
के माध्यम से पाइप,xargs
पुनर्व्यवस्थित करने के लिए आदेशopen -a imagej path/to/tiff
. बहुत उपयोगी है ।