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