উইন্ডোজ কমান্ড লাইনের সাহায্যে পাঠ্য ফাইলগুলি সংঘবদ্ধ করুন, শীর্ষস্থানীয় লাইনগুলি বাদ দিন


127

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

type file1.txt file2.txt > out.txt

আমি যা চাই তা প্রায় পেয়ে যাবার অনুমতি দেয় তবে আমি চাই না যে file2.txt এর প্রথম লাইনটি আউট টেক্সটে অন্তর্ভুক্ত করা হোক।

আমি লক্ষ করেছি যে এটিতে একটি প্রারম্ভিক রেখা নির্দিষ্ট moreকরার +nবিকল্প রয়েছে , তবে আমি যে ফলাফল চাই তা পেতে আমি এগুলিকে একত্রিত করতে সক্ষম হইনি। আমি জানি যে উইন্ডোজে এটি সম্ভব নাও হতে পারে এবং লাইনটি থেকে মুক্তি পেতে আমি সর্বদা হাত থেকে সম্পাদনা করতে পারি but তবে কমান্ড লাইন থেকে এটি করার কোনও সহজ উপায় আছে কি?

উত্তর:


136
more +2 file2.txt > temp
type temp file1.txt > out.txt

অথবা আপনি ব্যবহার করতে পারেন copy। আরও copy /?জন্য দেখুন।

copy /b temp+file1.txt  out.txt

4
অবশ্যই! আমি যদিও অস্থায়ী ফাইলগুলির ব্যবহার এড়ানো পছন্দ করতাম। আমি এটিকে একটি কমান্ডে আনার জন্য প্রথম বন্ধনী, পাইপ এবং <ব্যবহার করার চেষ্টা করেছি, কিন্তু কোথাও যেতে পারিনি। copyকমান্ড অনেক দ্রুত, কিন্তু এটা শেষে একটি উপ চরিত্র রাখে। এই সমস্যা এড়ানোর জন্য একটি উপায় আছে কি?
জেমস

18
আমি যুক্ত করব যে আপনি সমস্ত ফাইল একত্রীকরণ করতে চান আপনি copy /b *.txt combined.txtপৃথকভাবে ফাইল তালিকাবদ্ধ না করে করতে পারেন ।
ফুলসুলভ

1
আরও আপাতদৃষ্টিতে ফাঁকা স্থানগুলিতে ট্যাব রূপান্তর করুন!
আন্তোনিও

মার্জড ফাইলগুলি থেকে মূল ফাইলগুলি পুনরুদ্ধার করার জন্য কোনও আদেশ রয়েছে?
swapnil gandhi

3
@ ঘোস্টডোগ 74৪: আমার মনে type file1.txt temp > out.txtহয় প্রথম ফাইলটির শিরোনাম ছাড়াই দ্বিতীয় ফাইলটি যুক্ত করা দরকার
মারিয়াস

61

আমি এটি ব্যবহার করি এবং এটি আমার পক্ষে ভাল কাজ করে:

TYPE \\Server\Share\Folder\*.csv >> C:\Folder\ConcatenatedFile.csv

অবশ্যই, প্রতিটি রান করার আগে, আপনাকে করতে হবে DELETE C:\Folder\ConcatenatedFile.csv

একমাত্র সমস্যাটি হ'ল যদি সমস্ত ফাইলের শিরোনাম থাকে তবে তা সমস্ত ফাইলগুলিতে পুনরাবৃত্তি হবে।


2
যখন আমি সংক্ষিপ্ত ফাইলের জন্য একটি ফাইলের নাম লিখি, যার অর্থ এটি লোটে (বর্ণানুক্রমিক ক্রম) ফাইলগুলির শেষে রয়েছে, তখন উইন্ডোজগুলি দু'বার একত্রিত হবে বলে মনে হয়! সমস্যা না হওয়ার জন্য আমি 1 ফাইল ফাইল.সিএসভি ফাইল ব্যবহার করে শেষ করেছি। আমার ধারণা, আলাদা ফোল্ডারে একত্রিত হওয়াও কাজ করা উচিত ...
সেবকে

1
আপনি যদি >> এর পরিবর্তে> ব্যবহার করেন তবে আপনাকে আগে ফাইলটি মুছতে হবে না। > আউটপুট পুনঃনির্দেশ করে এবং প্রতিবার ফাইলটি নতুন তৈরি করে। >> আউটপুট পুনর্নির্দেশ এবং সংযোজন।
এডি দেইও

1
এই ফাইলটি 2 এর প্রথম লাইনটি কীভাবে এড়িয়ে যাবে?
ড্যান ড্যাসকলেসকু

1
এটি ফাইল 2-এ প্রথম লাইনটি এড়িয়ে যায় না। আমি প্রশ্নের সেই অংশটি মিস করেছি।
রাজ আরও

1
মার্জড ফাইলগুলি থেকে মূল ফাইলগুলি পুনরুদ্ধার করার জন্য কোনও আদেশ রয়েছে?
swapnil gandhi

21

ব্যবহারের সুপারিশটিতে মন্তব্য করার মতো পর্যাপ্ত খ্যাতি পয়েন্ট আমার কাছে নেই *.csv >> ConcatenatedFile.csv, তবে আমি একটি সতর্কতা যুক্ত করতে পারি:

আপনি যদি ConcatenatedFile.csvএকই ডিরেক্টরিতে ফাইলটি তৈরি করেন যা আপনি মনযোগের জন্য ব্যবহার করছেন এটি নিজেই যুক্ত হয়ে যাবে।


2
এই ফাইলটি 2 এর প্রথম লাইনটি কীভাবে এড়িয়ে যাবে?
ড্যান ড্যাসকলেসকু

6

লাইন দ্বারা কোনও ফাইল লাইন প্রতিধ্বনি করতে ফর কমান্ডটি ব্যবহার করুন, এবং 'শুরু করুন' বিকল্পের সাথে শুরু করে বেশ কয়েকটি শুরুর লাইন মিস করতে ...

FOR /F "skip=1" %i in (file2.txt) do @echo %i

আপনি ব্যাচের ফাইলের আউটপুট পুনর্নির্দেশ করতে পারে, এমন কিছু যুক্ত করে ...

FOR /F %%i in (file1.txt) do @echo %%i
FOR /F "skip=1" %%i in (file2.txt) do @echo %%i

একটি ব্যাচ ফাইলের মধ্যে যখন ফর ফর ভেরিয়েবল ব্যবহার করা হয় তখন ডাবল% নোট করুন।



3

আমি ঘোস্টডোগ except৪ এর একটি মন্তব্যে এটি লিখব, যদি আমার রেপ খুব কম থাকে তবে এখানে যায়।

more +2 file2.txt > temp
এই কোডটি আসলে ফাইলটির 1 এবং 2 সারিগুলিকে উপেক্ষা করবে। ওপি প্রথম ফাইলটি (শিরোনাম সারিটি বজায় রাখার জন্য) থেকে সমস্ত সারি রাখতে চায় এবং তারপরে দ্বিতীয় ফাইলটিতে প্রথম সারিটি (সম্ভবত একই শিরোনাম সারিটি) বাদ দেয়, যাতে কেবল শিরোনাম সারি বাদ দিতে ওপি ব্যবহার করা উচিত more +1

type temp file1.txt > out.txt

এই কোডটি থেকে কি অর্ডার ফলাফল তা অস্পষ্ট। হয় tempসংযোজন file1.txt(পছন্দসই হিসাবে), অথবা হয় file1.txtসংযোজন temp(অবাঞ্ছিত যেমন শিরোলেখ সারি ফলে ফাইল মাঝখানে সমাহিত করা হবে)।

তদতিরিক্ত, এই ক্রিয়াকলাপগুলি বড় ফাইলগুলি (যেমন 300MB) সহ সত্যই দীর্ঘ সময় নেয়


2

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

উইন্ডোতে পুরো গুচ্ছ কমান্ড চেষ্টা করার পরে এবং প্রচণ্ড হতাশার পরেও, এবং সমস্ত ধরণের গ্রাফিকাল সম্পাদক যে বড় বড় ফাইল খোলার জন্য প্রতিশ্রুতি দিয়েছিল তা চেষ্টা করার পরে, কিন্তু না পারার পরে, আমি শেষ পর্যন্ত আমার লিনাক্সের শিকড়গুলিতে ফিরে এসে আমার সাইগউইন খুললাম শীঘ্র. দুটি আদেশ:

cp file1.csv out.csv
tail -n+2 file2.csv >> out.csv

file1.csv800 এমবি এবং file2.csv400 এমবি-র জন্য , এই দুটি কমান্ড আমার মেশিনে 5 সেকেন্ডের মধ্যে নিয়েছে। সাইগউইন প্রম্পটে, কম নেই। আমি ভেবেছিলাম সাইগউইনে লিনাক্স কমান্ডগুলি ধীর হওয়ার কথা ছিল তবে এই পদ্ধতির চেয়ে অনেক কম প্রচেষ্টা নেওয়া হয়েছিল এবং আমি যে কোনও উইন্ডোজ পদ্ধতির সন্ধান করতে পারি তার চেয়ে সহজ ছিল।


1

পাওয়ারশেলে:

Get-Content file1.txt | Out-File out.txt
Get-Content file2.txt | Select-Object -Skip 1 | Out-File -Append out.txt

0

আপনি সহজেই এটি চেষ্টা করতে পারেন

type file2.txt >> file1.txt

এটি file1.txt এর শেষে file2.txt এর সামগ্রী যুক্ত করবে

আপনার যদি মূল file1.txt প্রয়োজন হয় তবে আগেই একটি ব্যাকআপ নিন। অথবা আপনি এটি করতে পারেন

type file1.txt > out.txt
type file2.txt >> out.txt

আপনি যদি প্রথম ফাইলটির শেষে একটি লাইন বিরতি রাখতে চান তবে সংযোজনের আগে নীচের কমান্ডটি ব্যবহার করে দেখতে পারেন।

type file1.txt > out.txt
printf "\n" >> out.txt
type file2.txt >> out.txt

0

copyব্যাখ্যার জন্য সহায়তা যে ওয়াইল্ডকার্ডগুলি একাধিক ফাইলকে একের সাথে সংযুক্ত করতে ব্যবহার করা যেতে পারে।

উদাহরণস্বরূপ, বর্তমান ফোল্ডারে থাকা সমস্ত .txt ফাইলগুলিকে xyz.txt নামের একটি একক ফাইলে "abc" দিয়ে শুরু করা:

copy abc*.txt xyz.txt


-1

এটি Test.txtশিরোনাম এবং সংযোজন নিয়ে Test1.txtনিয়ে যায় Test2.txtএবং Testresult.txtযথাক্রমে দ্বিতীয় এবং তৃতীয় ফাইল থেকে শিরোনাম সরিয়ে ফেলার পরে ফলাফলগুলি ফাইল করতে লেখেন :

type C:\Test.txt > C:\Testresult.txt && more +1 C:\Test1.txt >> C:\Testresult.txt && more +1 C:\Test2.txt >> C:\Testresult.txt
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.