এখানে সমস্যা লিনাক্স পুনর্নির্দেশের কোনও সমস্যা নয়; বরং পাইপলাইন কীভাবে কাজ করে তা একটি মৌলিক ভুল বোঝাবুঝি। এখানে পুনঃনির্দেশ কাজ করছে না কারণ কেবল কাটাটি আসলে স্টডআউটে মুদ্রণ করছে। ইকো কমান্ডের জন্য stdout কেটে দেওয়া স্টিডিনে পাইপ করা হয়েছে (যা কোনও ফাইল নির্দিষ্ট করার পরে এই ক্ষেত্রে ব্যবহৃত হচ্ছে না)।
echo "header line" > output_file && cut -c 1-5 input_file >> output_file
আপনি যা চান তা হ'ল এবং মোটেও অপ্রয়োজনীয় নয় (আমি আপনার ;সাথে প্রতিস্থাপন করেছি &&যাতে কাটা কমান্ড কেবলমাত্র শিরোনামটি সফলভাবে লিখিত হলে কার্যকর হবে; এইভাবে যদি আপনার আউটপুট_ফাইলে তৈরি বা লেখার অনুমতি না থাকে তবে এটি কার্যকর হবে না) )।
আপনি এগুলি সব কিছুতেও করতে পারেন, যেমন।
(echo "header line"; cut -c 1-5 input_file) > output_file
তবে এটি করার কোনও সত্যিকারের উপকার নেই এবং আরও জটিল উদাহরণগুলির সাথে এটি সমস্যার কারণ হতে পারে যদি আপনি সাবস্কেলটি কীভাবে বাদ দেওয়া হয় তার সাথে পরিচিত না হন।
আপনি যদি স্টিডনের মাধ্যমে কাটতে চান তবে আপনি চেষ্টা করতে পারেন:
echo "header line" | cut -c 1-5 - input_file
(ড্যাশ স্টিডিনের জন্য একটি সাধারণ শর্টকাট)
তবে এটি স্টিডিনে কাটা অপারেশনও সম্পাদন করবে (ফলস্বরূপ "শিরোনাম" এর একটি শিরোনাম লাইন)। আপনি প্রশ্নটি থেকে এটি চান বা না চান এটি বলা শক্ত।
{ .... } > some_file 2>&1( "কুপোকাত করা" some_file কুপোকাত করা নয়, বরং পরিশেষে যোগ এটি পরিবর্তে, শুধু পরিবর্তন করতে হবে।>একটি মধ্যে>>:{ ... } >> some_file 2>&1)