কমান্ড থেকে আউটপুট নিয়ে দুটি জিনিস করা


9

আমার একটি প্রোগ্রাম রয়েছে texcountযা আমার লটেক্স ডকুমেন্টের শব্দের সংখ্যাকে ছাড়িয়ে যায়। আমি sedনতুন লাইন টেক্স এক্স লাইনব্রেকগুলি তৈরি করতে এবং এরপরে আমার চূড়ান্ত নথিতে অন্তর্ভুক্ত করতে পারি এমন কোনও ফাইলে এটি লিখতে আমি এর আউটপুটটি পাইপও করতে পারি। কিন্তু যখন আমি texcount foo.tex | sed s/$/'\\\\'/ > wc.texকমান্ড লাইন আউটপুটটি texcountচাপা হয়।

টার্মিনালটিতে প্রদর্শিত প্রথম কমান্ডের আউটপুট এবং সেডে পাইপযুক্ত কীভাবে পেতে পারি ?

উত্তর:


9

দ্বিতীয় কমান্ডের জন্য আপনি একটি বেনামে পাইপ ব্যবহার করতে পারেন:

texcount foo.tex | tee >(sed s/$/'\\\\'/ > wc.tex)

এই উত্তরের প্রয়োজনীয় অংশটি ব্যবহার করা tee। যদি আপনি বাশের মতো নির্দিষ্ট শাঁস হন তবে আপনি টির আউটপুটটি ব্যবহার করে পাইপ করতে পারেন >(some further commands)। অন্যান্য শেলগুলিতে, আপনাকে টি ফাইল ফাইল আর্গুমেন্ট দিতে হবে (এটি এটির অপারেশনের মানক পদ্ধতি), এবং তারপরে চালনা করুন some further commands < thatfileএবং তারপরে ফাইলটি মুছুন। অথবা নীচে হরির উত্তর দেখুন।
dubiousjim

টি, টি এবং টি
বাগবধর

7

আপনার "টি" কমান্ড দরকার যা পাইপগুলিকে বিভক্ত করতে দেয়।

texcount foo.tex | tee >output.txt | sed s/$/'\\\\'/ > wc.tex ; cat output.txt

এটি আপনাকে অতিরিক্ত আউটপুট.টেক্সট ফাইল ছেড়ে দেবে। আরও তথ্যের জন্য এটি পড়ুন: http://www.unixtutorial.org/2007/12/tee-replicate- স্ট্যান্ডার্ড- আউটপুট / আপনি "ম্যান টি "ও করতে পারেন।


texcount foo.tex | tee unmodified |sed s/$/'\\\\'/ > modifiedদুটি ফাইলে আউটপুটটির সংশোধিত এবং অপরিবর্তিত সংস্করণ রাখে। টার্মিনালে আমি কীভাবে অপরিবর্তিত সংস্করণটি প্রিন্ট করব? আমি চেষ্টা করেছিলাম tee stdoutকিন্তু এটি কিছুই প্রিন্ট করে না ...
Seamus

3
আপনি এটি করতে পারবেন না, কারণ টি স্ট্যান্ডআউট এবং একটি ফাইলের কাছে এর ইনপুট প্রেরণ করে। Stdout সেড ইনপুট হয়ে ওঠে। আপনি && cat unmodifiedশেষে যোগ করতে পারে । এটি অপরিশোধিত আউটপুট টার্মিনালে ডাম্প করবে।
কিথবি

এখানে সঠিক কমান্ড লাইন হবে texcount foo.tex | tee output.txt | sed s/$/'\\\\'/ > wc.tex ; cat output.txt। অথবা আপনি ব্যবহার করতে পারে texcount foo.tex | tee output.txt; sed s/$/'\\\\'/ output.txt > wc.tex। উভয় ক্ষেত্রেই আপনি সম্ভবত rm output.txtপরে চাইবেন ।
সন্দেহজনক জিম

@ সন্দেহভাজন জিম সেমিকোলনটি সঠিক - পাইপটি কাজ করে তবে অর্ধ কোলন কী উদ্দেশ্য তা প্রকাশ করে।
ড্যানি স্ট্যাপল

6

আপনি মোটামুটি idiomatic ব্যবহার করতে পারেন

texcount foo.tex | tee /dev/tty | sed s/$/'\\\\'/ > wc.tex

/dev/tty একটি যাদু ডিভাইস যা বর্তমান প্রক্রিয়ার নিয়ন্ত্রণকারী টার্মিনালকে বোঝায়।

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