শেল কমান্ডের আউটপুট প্রথম লাইন পান


96

সংস্করণ সংখ্যাটি পড়ার চেষ্টা করার সময় vim, আমি প্রচুর অতিরিক্ত লাইন পেয়েছি যা আমার এড়ানো উচিত। আমি ম্যানুয়ালটি পড়ার headচেষ্টা করেছি এবং নিম্নলিখিত আদেশটি চেষ্টা করেছি:

vim --version | head -n 1

আমি জানতে চাই যে এটি সঠিক পন্থা কিনা?


4
কীভাবে ব্যর্থ হলো? এটা আমার জন্য কাজ করে.
চোরোবা

4
সিনট্যাক্সটি সঠিক the ত্রুটিটি কি ..?
কৌশিক নায়ক 9

4
এটি আমার পক্ষে কাজ করে তবে সম্ভবত আপনি ভিএম এর এমন একটি সংস্করণ ব্যবহার করছেন যা স্ট্যাডারকে সংস্করণ তথ্য লিখবে। চেষ্টা করুনvim --version 2>&1 | sed 1q
উইলিয়াম পার্সেল

আমার জন্যও কাজ করে - তাই হ্যাঁ, আপনার পদ্ধতির সঠিক আছে :)আপনার প্যাকেজটি stderr@ উইলিয়ামাম পার্সেল হিসাবে একটি চেক সরবরাহ করে যেমন তথ্যটি আউটপুট করে কিনা তা পরীক্ষা করে দেখুন।
ডেভিড সি র্যাঙ্কিন

উত্তর:


132

হ্যাঁ, একটি কমান্ড থেকে আউটপুট প্রথম লাইন পেতে এক উপায়।

যদি কমান্ডটি এমন কোনও স্ট্যান্ডার্ড ত্রুটির জন্য আউটপুট দেয় যা আপনি একই পদ্ধতিতে ক্যাপচার করতে চান, আপনাকে কমান্ডের স্ট্যান্ডার্ড ত্রুটিটিকে স্ট্যান্ডার্ড আউটপুট প্রবাহে পুনর্নির্দেশ করতে হবে:

utility 2>&1 | head -n 1

প্রথম লাইনটি ক্যাপচার করার জন্য আরও অনেকগুলি উপায় রয়েছে, যার মধ্যে রয়েছে sed 1q(প্রথম লাইনের পরে প্রস্থান করুন), sed -n 1p(কেবল প্রথম লাইনটি মুদ্রণ করুন, তবে সমস্ত কিছু পড়ুন), awk 'FNR == 1'(কেবল প্রথম লাইনটি মুদ্রণ করুন, তবে আবার সমস্ত কিছু পড়ুন) ইত্যাদি


4

আমি ব্যবহার করব:

awk 'FNR <= 1' file_*.txt

@ কুসালানন্দ উল্লেখ করেছেন যে কমান্ড লাইনে প্রথম লাইনটি ক্যাপচার করার অনেকগুলি উপায় রয়েছে তবে head -n 1ওয়াইল্ডকার্ডগুলি ব্যবহার করার সময় এটি ব্যবহার করা সেরা বিকল্প নয় কারণ এটি অতিরিক্ত তথ্য মুদ্রণ করবে। পরিবর্তন 'FNR == i'করা 'FNR <= i'প্রথম আই লাইনগুলি পেতে অনুমতি দেয়।

উদাহরণস্বরূপ, আপনার যদি file_1.txt নামক ফাইল রয়েছে ..., file_n.txt:

awk 'FNR <= 1' file_*.txt

hello
...
bye

তবে headওয়াইল্ডকার্ড সহ ফাইলটির নাম মুদ্রণ করুন:

head -1 file_*.txt

==> file_1.csv <==
hello
...
==> file_n.csv <==
bye

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