গ্রেপ এবং সারণি আদেশগুলি ব্যবহার করে আমি কীভাবে বাছাই করব?


15

আমি ফাইলে পাওয়া সব বিভিন্ন TCP পরিষেবার একটি অনুসারে সাজানো তালিকা তৈরি করতে চান /etc/services, নল কমান্ডের আউটপুট grep tcp /etc/servicesকমান্ড মধ্যে sort, তারপরে ফাইলটিকে এই পাইপ আউটপুট পুনর্নির্দেশ ~/pipelab.txt

আমি একটি ত্রুটি বার্তা পেয়েছি যে আমার আউটপুটটি ভুল, এবং কেন জানি না।

আমি এটাই শেষ চেষ্টা করেছি:

grep tcp /etc/services > ~/pipelab.txt | sort

উত্তর:


11

> ~/pipelab.txtস্পষ্টতই পাইপলাইন অপারেটরের একই পাশের কমান্ডের অন্তর্ভুক্ত |। অর্থাৎ আপনি grepআউটপুটটিকে ফাইলে প্রবেশের পরিবর্তে ফাইলটিতে পুনঃনির্দেশ করুন sort:

grep tcp /etc/services | sort > ~/pipelab.txt

21

আপনি উভয়ই grepএকটি ফাইলে আউটপুট পুনর্নির্দেশ এবং এটিতে পাইপ করার চেষ্টা করছেন sort। আপনি এটি করতে পারবেন না, কমপক্ষে এটির মতো নয়।

পরিবর্তে, আপনি সত্যিই এটি সাজানোর জন্য খাওয়াতে চান:

grep tcp /etc/services | sort

এবং তারপরে আপনি বাছাই করা আউটপুট (অর্থাত্‍ বাছাই করা কী ঘটছে) কোনও ফাইলে পুনর্নির্দেশ করতে চান, সুতরাং আপনি সাজানোর পরে পুনঃনির্দেশ স্থাপন করুন:

grep tcp /etc/services | sort > ~/pipelab.txt

পাইপ এবং পুনঃনির্দেশ উভয়ই কমান্ডের আউটপুট কোথায় যায় তা পরিবর্তন করে কাজ করে। আপনার মধ্যে দু'জনের আউটপুট নিয়ে লড়াই হয়েছে grep(এবং শেষ পর্যন্ত, পুনর্নির্দেশটি জিতেছে, এবং আপনার ফাইলটিতে অকার্যকর আউটপুট লিখেছিল)।


আপনাকে অনেক ধন্যবাদ, আমি ভেবেছিলাম যতক্ষণ আমি সর্দার আদেশটি যে কোনও জায়গায় রেখেছি এটি এখনও কার্যকর হবে।
ব্যবহারকারী72510

1
@ user72510 পাইপলাইনগুলি বাম থেকে ডানে ক্রমে প্রক্রিয়া করা হয়। এটি আসলে দরকারী, উদাহরণস্বরূপ আপনি যদি সাজানো আউটপুটের প্রথম পাঁচটি লাইন চান, আপনি করতে পারেন grep tcp /etc/services | sort | head -n 5। এটির sortআগে কাজটি করা গুরুত্বপূর্ণ head, অথবা আপনি যে পংক্তাগুলি চান তা পেলেন না।
ডারোবার্ট

এটি ব্যাখ্যা করার জন্য আপনাকে ধন্যবাদ। আমি অনলাইনে ক্লাস নিচ্ছি তাই আমি নিজেই পড়িয়ে চলেছি। এটি 40 বছর বয়সী এটি যুক্ত করা ধীরে ধীরে শেখা learning
ব্যবহারকারী72510
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.