লিনাক্স / ডেবিয়ান - মর্টিলিতে 'প্রস্রাব' কী করে?


21

আমি সম্প্রতি দেবিয়ানে (এবং উবুন্টু) 'মোর্টিলস' প্যাকেজটি আবিষ্কার করেছি । এটি সুবিধাজনক ইউনিক্স সরঞ্জামগুলির সংগ্রহ।

কমান্ডগুলির মধ্যে একটি হ'ল 'প্রস্রাব'। ম্যান পেজটি বলেছেন:

প্রস্রাব টিয়ের মতো তবে পাইপের জন্য।

তবে এটি একটি শর্ট ম্যান পৃষ্ঠা, আমি এটি সম্পর্কে একটি বাগ দায়ের করেছি । কেউ কি জানে যে এটি কী করে, কীভাবে এটি ব্যবহার করবে, কেন কেউ এটি ব্যবহার করবে?

উত্তর:


29

আপনি প্রস্রাবের সাথে কি করতে পারেন তা এখানে:

seq 5 -1 1 > file
cat file |pee 'sort -u > sorted' 'sort -R > unsorted'

সুতরাং প্রস্রাব ফাইলগুলির পরিবর্তে শেল পাইপগুলির সাথে কাজ করে।

বাশকে প্রস্রাবের দরকার নেই, এটি শেল কমান্ডগুলি ফাইল হিসাবে খুলতে পারে:

cat file |tee >(sort -u > sorted) >(sort -R > unsorted)

1
এটি ফাইল নাম জোকারদের সাথে কাজ করবে? Zgp.org/~dmarti/tips/git-m Multipleple - post - recep - hooks দেখুন - মুরগীরstdin প্রতিটি স্ক্রিপ্টকে ফাইলের নাম ধরণে ক্লোন দেওয়ার জন্য ব্যবহৃত হয় , খাঁটি বাশ কি এটি করতে পারে? এএফএআইইউ এটি বন্ধনীর অভ্যন্তরে নক্ষত্রটিকে প্রসারিত করবে tee >(app1 app2 app3 app4)যা >(app1) >(app2) >(app3) >(app4)আপনার উত্তরটি দেখায় না
'দ্য

অ্যারোচ, বাশ সিনট্যাক্স হুকস-জোকার কৌশল নিয়ে কাজ করবে না। শুধু মুরতুল ইনস্টল করুন।
টুবু


1
টি-তে প্রস্রাব করার আসল সুবিধাটি হ'ল এটি প্রতিটি উপ প্রক্রিয়া থেকে প্রস্রাবের স্টাডআউটে প্রেরণ করে। টি দিয়ে আপনার প্রতিটি প্রসেস stdout কোনও ফাইলে পুনর্নির্দেশ করা দরকার যদি আপনি এটি সংরক্ষণ করতে চান তবে প্রস্রাবের সাথে আপনার কেবল স্টডআউট সংরক্ষণ করতে হবে। অবশ্যই এটি কেবল তখনই বুদ্ধিমান হয় যখন প্রতিটি সাব কমান্ড একই ধরণের বিন্যাসিত কোনও জিনিস আউটপুট করে। যেমন আপনি কীভাবে গ্রিপে প্রকাশ করতে পারেন বা নিয়মিত প্রকাশ করতে পারেন তা বুঝতে না পারলে cat file | pee 'grep this' 'grep that' > lines.with.this.or.that.txt... টি ব্যবহার করে আপনি কেবল fileস্টাডআউটে একটি অনুলিপি পাবেন ।
underrun

>(command)বৈশিষ্ট্য বলা হয় প্রসেস প্রতিকল্পন
ভ্লাস্টিমিল ওভেক

16

আপনি teeপ্রথমে ব্যবহার করেছেন কিনা তা বোঝা সম্ভবত সহজ । এই দরকারী পুরানো সরঞ্জামটি স্ট্যান্ডার্ড ইনপুট নেয় এবং একাধিক ফাইল, আরও স্ট্যান্ডার্ড আউটপুট লিখে দেয়। পরবর্তী:

echo "Hello world" | tee one two

নামকরণ করা oneএবং twoদুটি স্ট্রিংযুক্ত দুটি ফাইল তৈরি করবে Hello world। এটি আপনার টার্মিনালেও মুদ্রণ করবে।


এখন peeএকটি অনুরূপ ফাংশন সম্পাদন করে তবে একাধিক ফাইলে আউটপুট পুনর্নির্দেশের পরিবর্তে এটি একাধিক মাধ্যমিক কমান্ড, আলা পাইপগুলিতে পুনঃনির্দেশ করে। এটি স্ট্যান্ডআউটে teeমূল স্টিডিনটি প্রেরণ করে না এমনভাবে এটির থেকে কিছুটা আলাদা কারণ এটি গৌণ কমান্ডগুলির আউটপুটটির সাথে একত্রিত করার কোনও মানে হবে না। নিম্নলিখিত খুব সহজ উদাহরণ:

echo "Hello world" | pee cat cat

Hello worldআপনার টার্মিনালটিতে দুবার স্ট্রিং আউটপুট দেবে । এটি কারণ দুটি দুটি উদাহরণের প্রতিটি catস্ট্যান্ডার্ড আউটপুট গ্রহণ করে এবং catযা করে তা মুদ্রণযোগ্য।

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