আপনি দুটি লাইনে প্রদর্শিত পাঠ্যের জন্য কীভাবে গ্রিপ সম্পাদন করবেন?
উদাহরণ স্বরূপ:
pbsnodes
আমি যে কমান্ডটি ব্যবহার করি এটি লিনাক্স ক্লাস্টারের ব্যবহার ফিরিয়ে দেয়
root$ pbsnodes
node1
state = free
procs = 2
bar = foobar
node2
state = free
procs = 4
bar = foobar
node3
state = busy
procs = 8
bar = foobar
আমি 'ফ্রি' অবস্থায় থাকা নোডগুলির সাথে মেলে এমন প্রোকের সংখ্যা নির্ধারণ করতে চাই। এখনও অবধি আমি "প্রোকসের সংখ্যা" এবং "ফ্রি স্টেটে নোডগুলি" নির্ধারণ করতে সক্ষম হয়েছি, তবে আমি সেগুলিকে একটি কমান্ডের সাথে সংযুক্ত করতে চাই যা সমস্ত ফ্রি প্রোকে দেখায়।
উপরের উদাহরণে, সঠিক উত্তরটি হবে 6 (2 + 4)।
আমি কি আছে
root$ NUMBEROFNODES=`pbsnodes|grep 'state = free'|wc -l`
root$ echo $NUMBEROFNODES
2
root$ NUMBEROFPROCS=`pbsnodes |grep "procs = "|awk '{ print $3 }' | awk '{ sum+=$1 } END { print sum }'`
root$ echo $NUMBEROFPROCS
14
'Procs = x' পড়ার মতো প্রতিটি লাইনের জন্য আমি কীভাবে অনুসন্ধান করতে পারি, তবে কেবল তার উপরের রেখাটি যদি 'state = free' পড়ে থাকে তবে?
awk
প্যাটার্ন মিলছে; আপনার প্রয়োজন নেইgrep
: