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


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.