linux - অন্য কমান্ডে একাধিক আর্গুমেন্ট হিসাবে কমান্ড আউটপুট কীভাবে পাস করতে হয়




shell unix (3)

আপনি xargs ব্যবহার করতে পারেন:

grep 'pattern' input | xargs -I% cp "%" "%.bac"

আমি একটি কমান্ড থেকে প্রতিটি আউটপুট একাধিক আর্গুমেন্ট হিসাবে দ্বিতীয় কমান্ডে পাস করতে চাই, যেমন:

grep "pattern" input

আয়:

file1
file2
file3

এবং আমি এই ফলাফলগুলি অনুলিপি করতে চাই, যেমন:

cp file1  file1.bac
cp file2  file2.bac
cp file3  file3.bac

আমি কীভাবে এক সাথে যেতে পারি? কিছুটা এইরকম:

grep "pattern" input | cp $1  $1.bac

আপনি কমান্ডের আউটপুট ইন্টারপোল্ট করতে $() ব্যবহার করতে পারেন। সুতরাং, আপনি kill -9 $(grep -hP '^\d+$' $(ls -lad /dir/*/pid | grep -P '/dir/\d+/pid' | awk '{ print $9 }')) use kill -9 $(grep -hP '^\d+$' $(ls -lad /dir/*/pid | grep -P '/dir/\d+/pid' | awk '{ print $9 }')) use ব্যবহার করতে পারেন kill -9 $(grep -hP '^\d+$' $(ls -lad /dir/*/pid | grep -P '/dir/\d+/pid' | awk '{ print $9 }')) আপনি চাইলে।


ক্রিস জেস্টার-ইয়াং ভাল উত্তর ছাড়াও, আমি বলব যে এই পরিস্থিতিতেগুলির জন্য xargs একটি ভাল সমাধান:

grep ... `ls -lad ... | awk '{ print $9 }'` | xargs kill -9

এটি তৈরি করবে। সব একসাথে:

grep -hP '^\d+$' `ls -lad /dir/*/pid | grep -P '/dir/\d+/pid' | awk '{ print $9 }'` | xargs kill -9






unix