উইন্ডোজ সমান 'লেজ' কমান্ডের


107

উইন্ডোজ কমান্ড লাইনে * নিক্স টেল কমান্ড অনুকরণ করার কোনও উপায় আছে কি ? আমার একটি ফাইল আছে এবং আমি পাঠ্যের প্রথম এন লাইনগুলি স্নিপ করার উপায় চাই । উদাহরণ স্বরূপ:

D:\>type file.txt
line one
line two
line three
D:\>*[call to tail]* > result.txt

D:\>type result.txt
line two
line three

10
এগুলি বাদ দেওয়ার পরিবর্তে headকেবল প্রথম এন লাইনগুলি দেখায় না ?
জয়ে

দয়া করে ক্রিস ২০০৯ সাল থেকে নতুন উত্তরগুলি বিবেচনা করুন, আরও সুনির্দিষ্টভাবে অমিত পোর্টনয়ের উত্তর । আপনার প্রশ্নটি সাধারণ হওয়ায় অনেক ব্যবহারকারী এই ওয়েব পৃষ্ঠাটি খুঁজে পেতে পারেন। এবং তারা প্রথমটির পরে উত্তরগুলি পড়া বন্ধ করতে পারে: আপনি যে উত্তরটি গ্রহণ করেছেন। আপনি যে উত্তরটি স্বীকার করেছেন সেটিকে আজকাল সম্ভাবনার সাথে আরও আপডেট করা যেতে পারে। চিয়ার্স;)
ওলিব্রে

আমি বাচ্চা বিভ্রান্ত মূল প্রশ্নটি ইউনিক্স স্টাইলের headকমান্ড সম্পর্কে ছিল , তবে পছন্দসই আউটপুটটি এটির মতো দেখতে লাগছিল tail। দেখে মনে হচ্ছে উত্তরগুলি প্রায় আছে headএবং না tail
ব্লেকওফট

@ ব্ল্যাকওফট আসল প্রশ্নটি এর আচরণের জন্য জিজ্ঞাসা করছিল tail, তবে শিরোনামটি বলেছেhead
এমএম

উত্তর:


89

কোন সঠিক সমতুল্য। তবে সেখানে একটি নেটিভ ডস কমান্ড "আরও" উপস্থিত রয়েছে যার একটি + এন বিকল্প রয়েছে যা নবম লাইনের পরে ফাইলটি আউটপুট করা শুরু করবে:

ডস প্রম্পট:

C:\>more +2 myfile.txt

উপরের কমান্ডটি প্রথম 2 লাইনের পরে সবকিছু আউটপুট দেবে।
এটি আসলে ইউনিক্সের মাথার বিপরীতমুখী :

ইউনিক্স কনসোল:

root@server:~$ head -2 myfile.txt

উপরের কমান্ডটি কেবল ফাইলের প্রথম 2 লাইন মুদ্রণ করবে।


8
না, এটি একরকম নয়। tailফাইলের শেষ থেকে গণনা শুরু হয়। সুতরাং, tail -2শেষ দুটি লাইন প্রিন্ট করা হবে।
ADTC

5
আমি কি প্রথম এন অক্ষরগুলি মুদ্রণ করতে পারি?
কিওয়ার্টি

@ এডটিসি (আমার সংস্করণ) লেজ নেতিবাচক সমর্থন করে না। শুধুমাত্র মাথা (gnuwin32) করে
এনএল-এক্স

@ এনএল-এক্স -2কোনও নেতিবাচক নয়। এটি কেবল একটি সংক্ষিপ্ত সংস্করণ-n 2 (লাইনের সংখ্যা) এর । দুর্ভাগ্যক্রমে, অনেকগুলি বাস্তবায়ন tailসমর্থন করে না -2, এটি এর সাথে সংঘটিত headবাস্তবায়নগুলির সাথে খুব বেমানান । এটি আমাকে অনেক বার বিরক্ত করেছে।
এডিটিসি

@ এডটিসি আহা দুঃখিত। আমি বিভ্রান্ত ছিল head -n -2যা থেকে পৃথক head -n 2। তবে লেজ সহ, পরেরটির অস্তিত্ব নেই।
nl-x

111

যদি আপনার উইন্ডোজ পাওয়ারশেল থাকে ইনস্টল থাকে (আমি মনে করি এটি এক্সপি থেকে অন্তর্ভুক্ত করা হয়েছে) আপনি কেবল সেমিডি.এক্স.ই থেকে চালাতে পারেন:

প্রধান কমান্ড:

powershell -command "& {Get-Content *filename* -TotalCount *n*}"

টেল কমান্ড:

powershell -command "& {Get-Content *filename* | Select-Object -last *n*}"

বা সরাসরি পাওয়ারশেল থেকে:

Get-Content *filename* -TotalCount *n*
Get-Content *filename* | Select-Object -last *n*


হালনাগাদ

পাওয়ারশেল 3.0 (উইন্ডোজ 8 এবং উচ্চতর) Tailওরফে সহ কমান্ড যুক্ত করেছে LastHeadএবং Firstউপকরণগুলিও যুক্ত করা TotalCountহয়েছিল।

সুতরাং, কমান্ডগুলি পুনরায় লেখা যেতে পারে

Get-Content *filename* -Head *n*
Get-Content *filename* -Tail *n*

এর headবদলে কি এমন আচরণ হয় না tail?
ব্লেকওফট

@ ব্ল্যাকওফ্ট হ্যাঁ এটা করেছে ... আমি আমার উত্তর আপডেট করেছি। এটি আশ্চর্যজনক যে কেউ এটি সম্পর্কে মন্তব্য করার আগে এটি 2 বছর এবং 17 ভোট গ্রহণ করেছে।
অমিত পোর্টনি

@ ব্ল্যাকওফট ঠিক বুঝতে পেরেছি যে প্রশ্নটি সম্পাদিত হয়েছিল! (স্ট্যাকওভারফ্লো.com/posts/1295068/ রিভিশনগুলি দেখুন)। এটি মূলত হেড কমান্ডের জন্য জিজ্ঞাসা করেছিল ... উভয় উত্তর অন্তর্ভুক্ত করার জন্য আপডেট হয়েছে ...
অমিত পোর্টনয়

2
@ অমিতপোর্টনয় এই স্ট্যাক এক্সচেঞ্জের কোথাও আমি আরও একটি উত্তর পেয়েছি যেখানে Get-Contentএখন একটি টেল কমান্ড রয়েছে। উদাহরণস্বরূপ, Get-content -Tail 5 file.txtfile.txt এর শেষ পাঁচটি লাইন প্রিন্ট করবে। আপনার উত্তর বিটিডব্লিউ আপডেট করার জন্য ধন্যবাদ।
ব্লেকওফট

2
ফিল্টার হিসাবে এটি ব্যবহার করার কোনও উপায়? (যেমন ফাইলের পরিবর্তে
স্টিডিন

24
more /e filename.txt P n

যেখানে এন = প্রদর্শিত সারি সংখ্যা of দ্রুত কাজ করে এবং ঠিক headকমান্ডের মতো ।


14
পি, এস ইত্যাদি কমান্ডগুলি কেবলমাত্র প্রম্পটে ব্যবহারকারী দ্বারা ইনপুট হতে পারে input এগুলি আরও কমান্ডে পাস হতে পারে না। সুতরাং, উপরের উদাহরণটি কাজ করে না
ফিলিবার্ট পেরুস


12

এটি মোট হ্যাক তবে এটি যদি আপনি একটি বিশাল ফাইল হন যা আপনি কেবল ফর্ম্যাট, শিরোনাম ইত্যাদি পরীক্ষা করতে চান এবং আপনি কোনও সমাধান খুঁজছেন আপনি সর্বদা 'আরও' আউটপুটটিকে একটি নতুন ফাইল এবং সিটিআরএল-সিতে পুনর্নির্দেশ করতে পারেন দ্রুত। আউটপুট সারিগুলিকে যথাযথভাবে নিয়ন্ত্রণ করা যায় না এবং আপনি সম্ভবত আউটপুটটির একটি লাইনের মাঝখানে এটি মেরে ফেলবেন তবে অন্যথায় ব্যবহারযোগ্য ফাইলের সামান্য কিছুটা দখল করার এটি একটি সস্তা উপায়।

যাত্রা।

সি: \ আরও test.csv> test.txt 
^ সে সি: test আরও পরীক্ষা.টেক্সট
লাইন 1
লাইন 2
ইত্যাদি ...... সি: \

9

ওয়েল, এই হবে না এটা, কিন্তু এটা সম্পর্কে যত দ্রুত দেখে মনে হচ্ছে (প্রায় হে (ঢ * মিটার), যেখানে n প্রদর্শন এবং মি লাইনের সংখ্যা ফাইলে লাইন মোট সংখ্যা হয়) আছে:

for /l %l in (1,1,10) do @for /f "tokens=1,2* delims=:" %a in ('findstr /n /r "^" filename ^| findstr /r "^%l:"') do @echo %b

"10" হ'ল আপনি যে লাইনের মুদ্রণ করতে চান তার সংখ্যা এবং "ফাইল নাম" ফাইলটির নাম।


6
কোনও সমাধানের জন্য +1 আপনাকে কোনও বন্দর ডাউনলোড করার চেয়ে টাইপ করতে বেশি সময় নিয়েছে head
ক্যামিলো মার্টিন

1
দ্রষ্টব্য: এই এক্সপ্রেশনটি বন্ধনীতে রাখুন - (expr) > out.txt- কোনও ফাইলে ফলাফল প্রেরণ করার সময়, বা আপনি কেবল সর্বশেষ লাইনটি পাবেন। বা সংযোজন - expr >> out.txt
সিজেড


7

দীর্ঘ ফাইলগুলিতে বিরতি এড়াতে ম্যাট ইতিমধ্যে উল্লিখিত আরও + এন ব্যবহার করার সময় এটি ব্যবহার করে দেখুন:

আরও +1 myfile.txt> কন

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



5

Get-content -Tail n file.txtপাওয়ারশেলের সাথে একমাত্র জিনিসটি tailলিনাক্সের কাছাকাছি আসে ।

Get-Content *filename* | Select-Object -last *n*লোড উপরে প্রস্তাবিত / পুরো জিনিস পার্স। বলা বাহুল্য, এটি আমার 10 জিবি লগ ফাইলটি নিয়ে খুশি ছিল না ... -Tailবিকল্পটি ফাইলটির শেষে শুরু হবে।


2

আপনি যদি হেড কমান্ডটি চান তবে এটির একটি সহজ উপায় হ'ল সাইগউইন ইনস্টল করা। তারপরে আপনার কাছে ইউনিক্সের সমস্ত সরঞ্জাম থাকবে।

যদি এটি কোনও ভাল সমাধান না হয়, তবে আপনি ফাইন্ডস্টার ব্যবহার করে চেষ্টা করতে পারেন এবং লাইন-ইন্ডিকেটরের সূচকের জন্য অনুসন্ধান করতে পারেন।

এমএসডিএন-তে সন্ধানকারী: http://technet.microsoft.com/en-us/library/bb490907.aspx


2

এখানে একটি দ্রুত নেটিভ হেড কমান্ড যা আপনাকে ডসের প্রথম 9 লাইন দেয়।

findstr /n "." myfile.txt | findstr "^.:"

প্রতিটি লাইনের প্রথম 2 টি অক্ষর হবে লাইন নম্বর।


2

এখানে একটি রিসোর্স কিট ডাউনলোড করা যেতে পারে: http://www.microsoft.com/downloads/en/confirmation.aspx?familyId=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displayLang=en

এটিতে একটি টেল.এক্সি সরঞ্জাম রয়েছে তবে এটি কয়েকটি উইন্ডোজ সংস্করণের সাথে সামঞ্জস্যপূর্ণ

(এই পোস্ট থেকে অনুলিপি করা হয়েছে: উইন্ডোজ জন্য টেল কমান্ড )


2

PS তে কমান্ডটি ব্যবহার করার চেষ্টা করুন:

Select -Last 1

এই কমান্ডটি পাইপলাইন করা যেতে পারে।

প্রথম লাইন পাওয়ার উদাহরণ:

type .\out.txt | Select -Last 1

বা প্রথম লাইন পেতে:

 type .\out.txt | Select -First 1

1

এফডাব্লুআইডাব্লু, যারা কেবল ফাইলের প্রধানের কাছ থেকে অনির্দিষ্টকালের রেকর্ড সরিয়ে ফেলতে হবে তাদের জন্য আরও> ভাল কাজ করে। কোনও কিছুর বিকাশের প্রাথমিক পর্যায়ে কেবল ছোট ফাইলটি ব্যবহার করার জন্য এটি দরকারী।


1

আমি কোনও ব্যাপ্তি বের করার চেষ্টা করিনি, তবে নিম্নলিখিত ডস কমান্ডটি ব্যবহার করে আমি একটি লাইন পেতে সক্ষম হয়েছি:

find /N " " *.log|find "[6]" 

যেহেতু বেশিরভাগ ফাইলের স্পেস থাকে তাই এই কমান্ডটি সমস্ত এলওজি ফাইল থেকে প্রতিটি লাইন টেনে নেয় এবং মূলত প্রতিটি ফাইলের জন্য 1 থেকে শুরু করে তাদের সংখ্যা দেয়। সংখ্যাযুক্ত ফলাফলগুলি দ্বিতীয় FINDকমান্ডে পাইপ করা হয় যা 6 নম্বর হিসাবে চিহ্নিত লাইনটি দেখায়।


1

এই পৃষ্ঠায় একটি বিনামূল্যে headইউটিলিটি রয়েছে যা আপনি ব্যবহার করতে পারেন use আমি এখনও চেষ্টা করে দেখিনি।


1
কেন এটি নিম্নমানের ছিল তা নিশ্চিত নয়। এটা তোলে executes ঠিক ইউনিক্স মাথা ইউটিলিটি মত।
ক্যাসন

1
এটি একটি ডাউনলোড লিঙ্ক। তিনি কি বাইনারিটি ইউউনকোড করে উত্তরটিতে এম্বেড করবেন?
গারগান্টুচেট

0
set /p line= < file.csv 
echo %line%

এটি আপনার ফাইলের প্রথম লাইনটি সিএমডি উইন্ডোতে পরিবর্তনশীল% লাইন% এ ফিরে আসবে।


0

সমসাময়িক উত্তর হিসাবে, উইন্ডোজ 10 চালানো হলে আপনি "উইন্ডোজ জন্য লিনাক্স সাবসিস্টেম" ব্যবহার করতে পারেন।

https://docs.microsoft.com/en-us/windows/wsl/install-win10

এটি আপনাকে উইন্ডোজ থেকে নেটিভ লিনাক্স কমান্ডগুলি চালানোর অনুমতি দেয় এবং এভাবে আপনি লিনাক্সে ঠিক কীভাবে লেজ চালান।


-2

আমি মনে করি না যে বাক্স থেকে বেরিয়ে আসার উপায় আছে। ডস এবং ব্যাচের ফাইলগুলিতে এরকম কোনও কমান্ড নেই এটি সিমুলেট করার জন্য সীমাবদ্ধ (বড় ব্যথা ব্যতীত)।


-2

সতর্কতা, টোকেনের জন্য ব্যাচ ফাইলটি ব্যবহার করা এবং অজানা পাঠ্য ইনপুটটিতে সীমাবদ্ধতার সীমাবদ্ধতা &,!, <, ইত্যাদি বর্ণের বিশেষ ব্যাখ্যার কারণে বিপর্যয় হতে পারে এবং এ জাতীয় পদ্ধতিগুলি কেবলমাত্র অনুমানযোগ্য পাঠ্যের জন্য সংরক্ষণ করা উচিত।

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