একটি ফাইল থেকে একটি মাত্রার চেয়ে বড় মানগুলি কীভাবে উত্তোলন করা যায়?


10

আমার এই ফাইলটি রয়েছে:

names average
john:15.02
Mark:09.63
James:12.58

আমি এটি থেকে 10 টিরও বেশি গড় গড়ে তুলতে চাই, সুতরাং এই উদাহরণে আউটপুটটি হওয়া উচিত:

15.02
12.58

উত্তর:


19

সঙ্গে awk

awk -F: '{if($2>10)print$2}' <filename

ব্যাখ্যা

উদাহরণ রান

$ <filename awk -F: '{if($2>10)print$2}'
15.02
12.58

এটা তোলে, স্পেস যোগ করতে পারেন এবং বন্ধনী বাইরে প্যাটার্ন করা সম্ভব এছাড়াও তাই এই সমান - ধন্যবাদ স্টিফান যে ইশারা জন্য:

awk -F: '{if($2>10)print$2}' <filename
awk -F: '{ if ( $2 > 10 ) print $2 }' <filename
awk -F: '$2>10{print$2}' <filename
awk -F: '$2 > 10 { print $2 }' <filename

আপনার সহায়তার জন্য নিখুঁত ধন্যবাদ, নিখুঁত সমাধানের জন্য, আমি এই পরিস্থিতিতে কেবলমাত্র 'কাট' এবং 'গ্রেপ' (বেসিক কমান্ড) ব্যবহার করতে পারি কেবলমাত্র ফাইলের গড় থেকে 10
— দশমিক

আমি আপনার সমাধানটি বুঝতে পেরেছি, নিখুঁত, সহায়তার জন্য আপনাকে অনেক ধন্যবাদ, আমি আপনার সকল প্রচেষ্টার প্রশংসা করি ..
— হাইকেল ফাজানী

ভুলে যাবেন না যে বাশ [[ $0 > 10 ]]একটি লেজিকাল তুলনা হিসাবে বিবেচনা করবে - এবং কোনও ক্ষেত্রেই অ-পূর্ণসংখ্যার মানগুলির পক্ষে খুব বেশি সহায়তা করে না
— স্টিল্ড্রাইভার

@ চিত্র: আমি ব্যক্তিগতভাবে ক্রিয়াকলাপের বিবৃতিগুলির আগে যেমন প্যাটার্নটি স্থাপন করা পছন্দ করি: উদাহরণস্বরূপ: awk -F: '{2> 10 {মুদ্রণ করুন $ 2}', কারণ এটি আমার পক্ষে পরিশ্রমী এবং প্রসারিত করা সহজতর (যেমন $ 2> 10 && $ 2 <100) ।
— স্টিফান

3

গ্রেপ সহ আপনাকে নিয়মিত প্রকাশের সাথে কাজ করতে হবে; যেমন

grep -E ':[^0-9]*[1-9][0-9][0-9]*\.' file | cut -d':' -f2

সেড হিসাবে:

sed -n 's/.*:[^0-9]*\([1-9][0-9][0-9]*\..*\)/\1/p' file

তবে অর্ডার করা ডেটাতে রেজেক্স ব্যবহার করা ত্রুটিযুক্ত প্রবণ (আমার অভিজ্ঞতায়) এবং পড়তে অসুবিধা হয় ;-)।


খুব চালাক! সংক্ষিপ্ত করা যেতে পারে grep ':[1-9][0-9]\+\.' <file | cut -d: -f2এবং sed -n 's/.*:\([1-9][0-9]\+\..*\)/\1/p' <file। এটি উল্লেখযোগ্য যে এটি কেবল> 1,> 10,> 100 ইত্যাদির সাথে কাজ করে, যেমন> 20 টি অসম্ভব।
— মিষ্টান্ন

আমি আমার রেজেক্সে একটি ত্রুটি পেয়েছি: দশমিক বিন্দু ছাড়াই সংখ্যার জন্য RegEx হতে হবে: ':[1-9][0-9]\+\.\?'- আক্ষরিক দশমিক বিন্দু \ \ optionচ্ছিক এবং একসাথে একবার মিলিত হয় ?. (@ আমার রেজিএক্সের সীমাবদ্ধতার প্রতিশ্রুতি দেওয়ার জন্য ডেজারেট ধন্যবাদ।)
— স্টিফান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.