আমি প্রতিটি প্রদত্ত আর্গুমেন্টের জন্য কমান্ড চালানোর জন্য xargs ব্যবহার করার চেষ্টা করছি, তবে দুর্ভাগ্যক্রমে --rep / -I পতাকাটি -n এর সাথে সংযুক্ত হওয়ার সাথে সাথে সঠিকভাবে কাজ করবে বলে মনে হচ্ছে না। দেখে মনে হচ্ছে {st স্ট্যান্ডিন থেকে পঠিত আর্গুমেন্টগুলির সম্পূর্ণ তালিকায় প্রসারিত হবে, -n বিকল্প নির্বিশেষে।
দুর্ভাগ্যক্রমে ওয়েবে সমস্ত উদাহরণ কমান্ড (এমভি, সিপি, আরএম) এর জন্য বলে মনে হচ্ছে যা একাধিক যুক্তি গ্রহণ করবে যেখানে {। প্রসারিত।
উদাহরণস্বরূপ, যখন চলমান:
echo a b c d | xargs -n 1 -I {} echo derp {}
আউটপুটটি হ'ল:
derp a b c d
তবে আমি প্রত্যাশা করেছি:
derp a
derp b
derp c
derp d
তবে, আমি-I {ব্যতীত এটি চালানো প্রত্যাশিত ফলাফল দেয়:
echo a b c d | xargs -n 1 echo derp
derp a
derp b
derp c
derp d
Xargs দিয়ে এটি অর্জন করার কোনও উপায় আছে কি? আমার চূড়ান্ত উদ্দেশ্য এটি একাধিক (parralel) ssh সেশন চালানোর জন্য ব্যবহার করা, যেমন
echo server{1..90} | xargs -n 1 -P 0 -I {} ssh {} 'echo $SOME_HOST_INFO'
আমি xargs (GNU findutils) 4.4.2
RHEL 6.3 এ চলছে ।
man xargs
চালু -I
: Also, unquoted blanks do not terminate input items; instead the separator is the newline character. Implies -x and -L 1.
সুতরাং এটি নকশা করা হিসাবে আচরণ করে।
xargs
তবে GNU নয়xargs
।