দৌড়ানোর সময় iw help
আপনি একটি সতর্কতা দেখতে পান:
এই সরঞ্জামটির স্ক্রীনস্ক্র্যাপ করবেন না , আমরা এর আউটপুট স্থিতিশীল বলে বিবেচনা করি না।
আছে দুটি বিভাগে আপনার সমস্যার একটি সমাধান এড়ানো প্রথম: নিচে iw
এবং দ্বিতীয় আপনার প্রশ্নের উত্তর। উভয়ই গতানুগতিক awk
পাশাপাশি কাজ করে (ডিফল্ট) GNU Awk
।
আপনার সমস্যার সমাধান
আমি এর iwconfig
পরিবর্তে ব্যবহার করব iw
:
while sleep 1; do
iwconfig wlan0 | awk -F'[ :=]+' '/Freq/{gsub("\\.","");f=$5}/Signal/{s=$7}END{print s","f}'
done >>log.csv
আউটপুট
$ iwconfig wlan0 | awk -F'[ :=]+' '/Freq/{gsub("\\.","");f=$5}/Signal/{s=$7}END{print s","f}'
-44,2412
মন্তব্য
আপনি মানগুলি ,
কোনও ট্যাব দ্বারা পৃথক করা উচিত নয় বরং (যা হবে \t
), আমি ,
এখানে বিভ্রান্ত হয়ে পড়েছি , আমি এখানে এবং এর বাইরে ফাঁকা স্থানগুলি বেছে নিয়েছি । আপনি যদি সেই s","f
অনুযায়ী পরিবর্তন করতে চান তা না s
হলে সেখানকার মান Signal
এবং মান।
আমি পুনঃনির্দেশটিও সরিয়ে নিয়েছি, এইভাবে ফাইলটি প্রতিটি রানে খোলার দরকার নেই তবে একবারে।f
Frequency
awk
অংশের ব্যাখ্যা
-F'[ :=]+'
- +
বর্গাকার বন্ধনীতে আবদ্ধ তিনটি অক্ষরের একটি বা একাধিক ( ) এখানে আলাদা ফিল্ড ডিলিমিটার সেট করে
/Freq/{gsub("\\.","");f=$5}
- "ফ্রিক" দিয়ে লাইনে (গুলি), প্রতিটি বিন্দুকে কিছুই দ্বারা প্রতিস্থাপন করুন (কারণ iwconfig
আউটপুটে ফ্রিকোয়েন্সিটি হাজার বিভাজক হিসাবে একটি বিন্দু ব্যবহার করে) এবং পঞ্চম কলামের বিষয়বস্তু ভেরিয়েবলে সংরক্ষণ করুনf
/Signal/{s=$7}
- "সংকেত" সহ লাইনে (গুলি), সপ্তম কলামের সামগ্রী ভেরিয়েবলে সংরক্ষণ করুন s
END{print s","f}
- ইনপুট প্রক্রিয়া করার পরে, print
ভেরিয়েবলগুলি s
এবং f
তাদের মধ্যে একটি আক্ষরিক কমা সহ
আপনার প্রশ্নের উত্তর
while sleep 1; do
iw dev wlan0 link | awk '/freq/{f=$2};/signal/{s=$2}END{print s","f}'
done >>log.csv
আউটপুট
$ iw dev wlan0 link | awk '/freq/{f=$2};/signal/{s=$2}END{print s","f}'
-43,2412
awk
অংশের ব্যাখ্যা
/freq/{f=$2}
- এর সাথে লাইনে (গুলি) freq
, দ্বিতীয় কলামটি (স্থান পৃথক) পরিবর্তনশীলে সংরক্ষণ করুন savef
/signal/{s=$2}
- এর সাথে লাইনে (গুলি) signal
, দ্বিতীয় কলামটি ভেরিয়েবলে সংরক্ষণ করুনs
END{print s","f}
- ইনপুট প্রক্রিয়া করার পরে, print
ভেরিয়েবলগুলি s
এবং f
তাদের মধ্যে একটি আক্ষরিক কমা সহ