Batch Script-এ ডেটা এবং টেক্সট প্রসেসিং একটি গুরুত্বপূর্ণ অংশ, যা আপনাকে ফাইল থেকে ডেটা পড়তে, লেখার পাশাপাশি টেক্সট স্ট্রিং manipulations করতে সহায়তা করে। Batch Script বেশ কিছু কমান্ড এবং ফাংশন সরবরাহ করে যার মাধ্যমে আপনি টেক্সট স্ট্রিং, ফাইলের কন্টেন্ট এবং ডেটা প্রক্রিয়া করতে পারবেন।
1. Strings Manipulation (substring, replace, trim)
Batch Script-এ স্ট্রিং প্রসেসিংয়ের জন্য বিভিন্ন ধরনের টুলস রয়েছে যা আপনাকে স্ট্রিংয়ের অংশ বের করতে (substring), কিছু অংশ পরিবর্তন করতে (replace) এবং অপ্রয়োজনীয় স্পেস সরাতে (trim) সাহায্য করে।
1.1 Substring Extraction
একটি স্ট্রিংয়ের থেকে একটি নির্দিষ্ট অংশ বের করার জন্য Batch Script-এ আপনি set কমান্ড ব্যবহার করতে পারেন।
উদাহরণ:
@echo off
set str=Hello World
set subStr=%str:~0,5%
echo %subStr%
pause
এখানে, %str:~0,5% মানে "Hello" শব্দটির প্রথম ৫টি অক্ষর বের করা হচ্ছে।
- %str:~startIndex,length%: এটি স্ট্রিং থেকে নির্দিষ্ট স্থানে শুরু করে একটি নির্দিষ্ট দৈর্ঘ্যের অংশ কেটে নেয়।
আউটপুট:
Hello
1.2 String Replacement
Batch Script-এ স্ট্রিংয়ের কিছু অংশ পরিবর্তন করতে set কমান্ডে রেপ্লেসমেন্ট সেন্ট্যাক্স ব্যবহার করা হয়।
উদাহরণ:
@echo off
set str=Hello World
set newStr=%str:World=Universe%
echo %newStr%
pause
এখানে, %str:World=Universe% স্ট্রিংয়ের "World" অংশকে "Universe" দিয়ে প্রতিস্থাপন করছে।
আউটপুট:
Hello Universe
1.3 Trimming (Removing Extra Spaces)
Batch Script-এ স্ট্রিং থেকে অতিরিক্ত স্পেস মুছে ফেলতে সরাসরি কোনো ট্রিমিং ফাংশন নেই, তবে আপনি কিছু ট্রিকস ব্যবহার করতে পারেন।
উদাহরণ (অতিরিক্ত স্পেস মুছে ফেলা):
@echo off
set str= Hello World
set str=%str: =%
echo %str%
pause
এখানে, %str: =% কমান্ডটি স্ট্রিংয়ের সব স্পেসগুলো মুছে দেবে।
আউটপুট:
HelloWorld
2. Text Files থেকে Data Extraction
Batch Script-এ টেক্সট ফাইল থেকে ডেটা বের করার জন্য আপনি for /f কমান্ড ব্যবহার করতে পারেন। এটি ফাইলের প্রতিটি লাইনে লুপ করে গিয়ে নির্দিষ্ট ডেটা বের করতে ব্যবহৃত হয়।
উদাহরণ:
ধরা যাক, একটি টেক্সট ফাইল data.txt রয়েছে, যার মধ্যে কিছু ডেটা রয়েছে এবং আপনি তার প্রতিটি লাইনে যেতে চান।
data.txt:
apple
banana
cherry
ব্যাচ স্ক্রিপ্ট:
@echo off
for /f "tokens=*" %%a in (data.txt) do (
echo %%a
)
pause
এখানে, for /f "tokens=*" %%a প্রতিটি লাইনের টেক্সটকে %%a ভেরিয়েবলে স্টোর করে এবং echo %%a দিয়ে তা প্রিন্ট করে।
আউটপুট:
apple
banana
cherry
3. Delimiter ব্যবহার করে Data প্রসেস করা
Batch Script-এ আপনি for /f কমান্ডে delims অপশন ব্যবহার করে ডেলিমিটার নির্ধারণ করতে পারেন। এর মাধ্যমে আপনি কমা, স্পেস, অথবা অন্যান্য ডেলিমিটার ব্যবহার করে ডেটা বিভক্ত করতে পারেন।
উদাহরণ:
ধরা যাক, আপনার কাছে একটি টেক্সট ফাইল data.csv রয়েছে যেটি কমা দিয়ে ডেটা বিভক্ত করেছে।
data.csv:
apple,10
banana,20
cherry,30
ব্যাচ স্ক্রিপ্ট:
@echo off
for /f "tokens=1,2 delims=," %%a in (data.csv) do (
echo Item: %%a, Quantity: %%b
)
pause
এখানে, delims=, দিয়ে কমাকে ডেলিমিটার হিসেবে নির্ধারণ করা হয়েছে, এবং tokens=1,2 দ্বারা প্রথম এবং দ্বিতীয় কলাম আলাদা করা হয়েছে।
আউটপুট:
Item: apple, Quantity: 10
Item: banana, Quantity: 20
Item: cherry, Quantity: 30
4. Findstr কমান্ড দিয়ে টেক্সট সার্চ করা
Batch Script-এ findstr কমান্ড ব্যবহার করে আপনি একটি টেক্সট ফাইলের মধ্যে নির্দিষ্ট শব্দ বা স্ট্রিং খুঁজে বের করতে পারেন।
উদাহরণ:
ধরা যাক, আপনার কাছে একটি টেক্সট ফাইল data.txt রয়েছে এবং আপনি সেই ফাইলে "banana" শব্দটি খুঁজে বের করতে চান।
data.txt:
apple
banana
cherry
ব্যাচ স্ক্রিপ্ট:
@echo off
findstr "banana" data.txt
pause
আউটপুট:
banana
এখানে findstr "banana" data.txt কমান্ডটি data.txt ফাইলে "banana" শব্দটি খুঁজে প্রিন্ট করবে।
সারাংশ:
Batch Script-এ ডেটা এবং টেক্সট প্রসেসিংয়ের মাধ্যমে আপনি স্ট্রিং ম্যানিপুলেশন, ফাইলের ডেটা বের করা, এবং ডেটা প্রসেস করতে পারেন। এই টুলগুলো Batch Script-কে আরও শক্তিশালী এবং বহুমুখী করে তোলে। আপনি সহজেই স্ট্রিংয়ের অংশ বের করতে, তার কিছু অংশ পরিবর্তন করতে, ফাইল থেকে ডেটা পড়তে, এবং নির্দিষ্ট ডেটা খুঁজে বের করতে পারেন।
Batch script-এ স্ট্রিং ম্যানিপুলেশন বেশ সহজ হলেও কিছু সীমাবদ্ধতা রয়েছে। তবে, আপনি বিভিন্ন কমান্ড এবং কৌশল ব্যবহার করে স্ট্রিং সম্পর্কিত সাধারণ কাজগুলো যেমন সাবস্ট্রিং বের করা, টেক্সট প্রতিস্থাপন করা, অথবা অতিরিক্ত স্পেস মুছে ফেলা সহজেই করতে পারেন। নিচে substring, replace, এবং trim সম্পর্কিত বিভিন্ন কৌশল আলোচনা করা হলো।
1. Substring (সাবস্ট্রিং)
Batch script-এ সাবস্ট্রিং বের করার জন্য set কমান্ড এবং নির্দিষ্ট টোকেন সেন্টেক্স ব্যবহার করা হয়। Batch script সরাসরি কোনো substring ফাংশন সাপোর্ট করে না, তবে আপনি ইনডেক্স এবং দৈর্ঘ্য নির্দিষ্ট করে সাবস্ট্রিং তৈরি করতে পারেন।
Syntax:
set var=%string:~start,length%
এখানে,
- start হল সাবস্ট্রিংয়ের শুরু পজিশন।
- length হল সাবস্ট্রিংয়ের দৈর্ঘ্য।
উদাহরণ:
@echo off
set str=Hello, Batch Scripting!
set subStr=%str:~7,5%
echo Substring is: %subStr%
এই উদাহরণে, "Hello, Batch Scripting!" স্ট্রিং থেকে ৭ নম্বর পজিশন থেকে ৫টি অক্ষর নিয়ে সাবস্ট্রিং বের করা হয়েছে, যা হবে "Batch"।
2. Replace (টেক্সট প্রতিস্থাপন)
Batch script-এ কোনো স্ট্রিংয়ের একটি অংশ প্রতিস্থাপন করতে set কমান্ড ব্যবহার করা হয়। এটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট টোকেনের সবOccurrences পরিবর্তন করতে সাহায্য করে।
Syntax:
set var=%string:old_string=new_string%
এখানে,
- old_string হল সেই অংশ যেটি আপনি প্রতিস্থাপন করতে চান।
- new_string হল নতুন অংশ যা আপনি বসাতে চান।
উদাহরণ:
@echo off
set str=Hello, World!
set newStr=%str:World=Batch%
echo Replaced string: %newStr%
এখানে, "Hello, World!" স্ট্রিংয়ের "World" শব্দটিকে "Batch" দিয়ে প্রতিস্থাপন করা হয়েছে। আউটপুট হবে: Hello, Batch!
3. Trim (ট্রিম)
Batch script-এ স্ট্রিংয়ের শুরু এবং শেষে অতিরিক্ত স্পেস মুছে ফেলতে trim অপারেশন সরাসরি করা যায় না, তবে আপনি একটি ছোট কৌশল ব্যবহার করে এটি করতে পারেন। Batch script তে স্ট্রিংয়ের প্রথম এবং শেষ থেকে স্পেস সরানোর জন্য একটি পদ্ধতি তৈরি করতে হবে।
Syntax:
set trimmedString=%string: =%
উদাহরণ:
@echo off
set str= Hello, Batch!
set trimmedString=%str: =%
echo Trimmed string: %trimmedString%
এখানে, আমরা স্ট্রিংটির শুরু এবং শেষ থেকে অতিরিক্ত স্পেস মুছে ফেলেছি।
উল্লেখযোগ্য বিষয়: Batch script-এ trim অপারেশন কিছুটা অসুবিধাজনক হতে পারে, কারণ এর জন্য আপনাকে কয়েকটি স্টেপ অনুসরণ করতে হয়।
4. অন্যান্য স্ট্রিং ম্যানিপুলেশন কৌশল
এছাড়া, Batch script-এ আরও কিছু স্ট্রিং ম্যানিপুলেশন কাজ যেমন:
- স্ট্রিংয়ের দৈর্ঘ্য পাওয়া (
set length=%string:~0,1%), - স্ট্রিংয়ের একটি অংশ বিচ্ছিন্ন করা,
- স্ট্রিংয়ের একটি অংশ মুছে ফেলা ইত্যাদি করা সম্ভব।
সারাংশ
Batch script-এ স্ট্রিং ম্যানিপুলেশনের কিছু সাধারণ কাজ যেমন substring, replace, এবং trim করা যায়, যদিও সরাসরি ফাংশন সাপোর্ট নেই। substring এর জন্য set কমান্ডে টোকেন সেন্টেক্স ব্যবহার করা হয়, replace এর জন্য নির্দিষ্ট টোকেনকে প্রতিস্থাপন করা হয়, এবং trim করার জন্য অতিরিক্ত স্পেস সরানোর জন্য কিছু অতিরিক্ত কৌশল প্রয়োগ করা হয়।
Batch Script-এ টেক্সট ফাইল থেকে ডেটা বের করা (Data Extraction) খুবই গুরুত্বপূর্ণ একটি কাজ, যেটি আপনাকে ফাইল থেকে তথ্য প্রক্রিয়া করতে এবং নির্দিষ্ট ডেটা নিয়ে কাজ করতে সহায়তা করে। for /f কমান্ড ব্যবহার করে Batch Script-এ ফাইলের প্রতিটি লাইনে লুপ করে গিয়ে ডেটা বের করা সম্ভব হয়।
for /f কমান্ডের গঠন
for /f "options" %%variable in (file) do command
- options: ফাইলের লাইনগুলো কিভাবে প্রক্রিয়া করা হবে তা নির্দেশ করে। যেমন:
"tokens=*"বা"delims=,"। - %%variable: ফাইলের প্রতিটি লাইনের ডেটা ধারণ করার জন্য ব্যবহৃত ভেরিয়েবল।
- file: যে টেক্সট ফাইল থেকে ডেটা বের করতে চান তার পাথ।
- command: ফাইলের ডেটা নিয়ে আপনি যেই কমান্ড চালাতে চান।
উদাহরণ ১: ফাইলের প্রতিটি লাইন প্রিন্ট করা
যদি আপনি একটি টেক্সট ফাইলের প্রতিটি লাইন প্রিন্ট করতে চান, তাহলে নিম্নলিখিত স্ক্রিপ্ট ব্যবহার করতে পারেন।
টেক্সট ফাইল: data.txt
apple
banana
cherry
Batch Script:
@echo off
for /f "tokens=*" %%a in (data.txt) do (
echo %%a
)
pause
এখানে, "tokens=*" ফাইলের প্রতিটি লাইনে থাকা পুরো স্ট্রিংকে %%a ভেরিয়েবলে ধারণ করবে এবং তা স্ক্রিনে প্রিন্ট করবে।
আউটপুট:
apple
banana
cherry
উদাহরণ ২: টেক্সট ফাইল থেকে নির্দিষ্ট কলাম বা তথ্য বের করা
ধরা যাক, আপনার কাছে একটি CSV (Comma Separated Values) ফাইল রয়েছে এবং আপনি সেখানে থেকে কিছু নির্দিষ্ট কলামের ডেটা বের করতে চান।
টেক্সট ফাইল: data.csv
apple,10
banana,20
cherry,30
এখানে আপনি প্রথম কলাম (ফল) এবং দ্বিতীয় কলাম (পরিমাণ) আলাদা করতে চান।
Batch Script:
@echo off
for /f "tokens=1,2 delims=," %%a in (data.csv) do (
echo Item: %%a, Quantity: %%b
)
pause
এখানে:
- tokens=1,2: এই অপশনটি প্রথম এবং দ্বিতীয় কলাম আলাদা করতে সাহায্য করবে।
- delims=,: এটি কমাকে (
,) ডেলিমিটার হিসেবে ব্যবহার করবে।
আউটপুট:
Item: apple, Quantity: 10
Item: banana, Quantity: 20
Item: cherry, Quantity: 30
উদাহরণ ৩: একটি নির্দিষ্ট শব্দ বা স্ট্রিং খুঁজে বের করা
Batch Script-এ আপনি findstr কমান্ড ব্যবহার করে ফাইল থেকে নির্দিষ্ট শব্দ বা স্ট্রিং খুঁজে বের করতে পারেন।
টেক্সট ফাইল: data.txt
apple
banana
cherry
orange
এখন আপনি ফাইলটিতে "banana" শব্দটি খুঁজে বের করতে চান।
Batch Script:
@echo off
findstr "banana" data.txt
pause
এটি data.txt ফাইলের মধ্যে "banana" শব্দটি খুঁজে বের করবে এবং তা স্ক্রিনে দেখাবে।
আউটপুট:
banana
উদাহরণ ৪: ফাইলের শিরোনাম (Header) বাদে ডেটা বের করা
কিছু সময় ফাইলে শিরোনাম বা হেডার থাকে, যেটি আপনি প্রক্রিয়া করতে চান না। Batch Script-এ skip অপশন ব্যবহার করে আপনি প্রথম কয়েকটি লাইন (যেমন শিরোনাম) বাদ দিয়ে পরবর্তী ডেটা প্রক্রিয়া করতে পারেন।
টেক্সট ফাইল: data.csv
Item,Quantity
apple,10
banana,20
cherry,30
এখানে আপনি শিরোনামটি বাদ দিয়ে ডেটা বের করতে চান।
Batch Script:
@echo off
for /f "skip=1 tokens=1,2 delims=," %%a in (data.csv) do (
echo Item: %%a, Quantity: %%b
)
pause
এখানে, skip=1 নির্দেশনা দিয়ে শিরোনাম (প্রথম লাইন) বাদ দেওয়া হয়েছে এবং বাকি লাইনগুলি প্রক্রিয়া করা হচ্ছে।
আউটপুট:
Item: apple, Quantity: 10
Item: banana, Quantity: 20
Item: cherry, Quantity: 30
উদাহরণ ৫: একাধিক ফাইল থেকে ডেটা বের করা
একাধিক টেক্সট ফাইলের ডেটা বের করার জন্য আপনি for কমান্ডের মধ্যে একাধিক ফাইল পাথ ব্যবহার করতে পারেন।
Batch Script:
@echo off
for %%f in (file1.txt file2.txt file3.txt) do (
for /f "tokens=*" %%a in (%%f) do (
echo %%a
)
)
pause
এখানে, for %%f একাধিক ফাইলের জন্য লুপ চালাবে এবং প্রতিটি ফাইলের লাইন অনুযায়ী ডেটা প্রিন্ট করবে।
সারাংশ
Batch Script-এ for /f কমান্ড ব্যবহার করে টেক্সট ফাইল থেকে ডেটা বের করা একটি শক্তিশালী টুল। আপনি টেক্সট ফাইলের প্রতিটি লাইন পড়তে, নির্দিষ্ট ডেলিমিটার দ্বারা ডেটা বিভক্ত করতে, নির্দিষ্ট কলাম বা তথ্য বের করতে, এবং এমনকি নির্দিষ্ট স্ট্রিং খুঁজে বের করতে পারেন। findstr কমান্ড ব্যবহার করে আপনি কোনো নির্দিষ্ট শব্দ বা স্ট্রিং খুঁজে বের করতে সক্ষম হবেন। Batch Script আপনাকে সহজেই ফাইল থেকে তথ্য প্রক্রিয়া এবং প্রয়োজনীয় ডেটা বের করার সুযোগ দেয়।
Batch Script-এ ডেটা প্রসেসিংয়ের সময় অনেক সময় বিভিন্ন ডেটা ফাইল বা স্ট্রিংয়ের মধ্যে ডেলিমিটার (Delimiter) ব্যবহার করা হয়, যেমন কমা (,), স্পেস ( ), ট্যাব (\t), সেমিকোলন (;) ইত্যাদি। ডেলিমিটার সাধারণত আলাদা আলাদা ভ্যালু বা তথ্যকে পৃথক করতে ব্যবহৃত হয়। Batch Script-এ ডেলিমিটার ব্যবহার করে ডেটা প্রসেস করার মাধ্যমে আমরা বিভিন্ন আউটপুট বা ডেটা সংগ্রহের জন্য ফাইল বা স্ট্রিং গুলি সহজে বিশ্লেষণ করতে পারি।
Delimiter ব্যবহার করে ডেটা প্রসেস করার জন্য কিছু জনপ্রিয় পদ্ধতি:
- FOR /F Loop
Batch Script-এ ডেলিমিটার দিয়ে ডেটা প্রসেস করার জন্য FOR /F লুপ ব্যবহার করা হয়। এটি একটি শক্তিশালী কমান্ড যা ফাইলের প্রতিটি লাইন, অথবা একটি স্ট্রিংয়ের প্রতিটি অংশ (ডেলিমিটার দ্বারা পৃথক) আলাদাভাবে প্রসেস করতে সক্ষম।
উদাহরণ ১: একটি ফাইল থেকে ডেলিমিটার দিয়ে ডেটা প্রসেস করা
ধরা যাক, আপনার কাছে একটি CSV ফাইল রয়েছে যা কমা দিয়ে পৃথক করা ডেটা ধারণ করে। এই ডেটা ফাইল থেকে কমা (,) দিয়ে আলাদা আলাদা ভ্যালু পড়া এবং প্রসেস করার জন্য নিচের কোডটি ব্যবহার করা যেতে পারে।
CSV ফাইল (data.csv):
John,25,Engineer
Alice,30,Doctor
Bob,22,Designer
Batch Script:
@echo off
for /F "tokens=1,2,3 delims=," %%A in (data.csv) do (
echo Name: %%A, Age: %%B, Profession: %%C
)
pause
exit
ব্যাখ্যা:
for /F "tokens=1,2,3 delims=," %%A in (data.csv)
এই লাইনটিdata.csvফাইল থেকে প্রতিটি লাইনের জন্য,(কমা) ডেলিমিটার ব্যবহার করে তিনটি ভ্যালু (নাম, বয়স, পেশা) আলাদা করে।%%A,%%B, এবং%%Cযথাক্রমে প্রথম, দ্বিতীয় এবং তৃতীয় টোকেন (অথবা ভ্যালু) ধারণ করবে, যা প্রতিটি লাইনে আলাদা আলাদা থাকবে।
আউটপুট:
Name: John, Age: 25, Profession: Engineer
Name: Alice, Age: 30, Profession: Doctor
Name: Bob, Age: 22, Profession: Designer
উদাহরণ ২: স্ট্রিং থেকে ডেলিমিটার দিয়ে ডেটা প্রসেস করা
আপনি যদি কোন স্ট্রিংয়ের মধ্যে ডেলিমিটার ব্যবহার করে ডেটা প্রসেস করতে চান, তবে FOR /F কমান্ড একইভাবে ব্যবহার করা যায়।
Batch Script:
@echo off
set string=John,25,Engineer
for /F "tokens=1,2,3 delims=," %%A in ("%string%") do (
echo Name: %%A, Age: %%B, Profession: %%C
)
pause
exit
ব্যাখ্যা:
- এখানে,
set string=John,25,Engineerএকটি স্ট্রিং সেট করা হয়েছে যা কমা দ্বারা পৃথকিত ভ্যালু ধারণ করে। for /Fকমান্ডটি সেই স্ট্রিংয়ের তিনটি টোকেন আলাদা করে%%A,%%B, এবং%%Cতে সংরক্ষণ করবে।
আউটপুট:
Name: John, Age: 25, Profession: Engineer
উদাহরণ ৩: একাধিক ডেলিমিটার ব্যবহার করা
অনেক সময় একাধিক ডেলিমিটার ব্যবহার করা হয়, যেমন স্পেস, কমা এবং সেমিকোলন। Batch Script-এ একাধিক ডেলিমিটার ব্যবহার করার জন্য delims অপশনটি একাধিক চিহ্ন দিয়ে নির্দিষ্ট করা যায়।
Batch Script:
@echo off
set string=John;25,Engineer
for /F "tokens=1,2,3 delims=,;" %%A in ("%string%") do (
echo Name: %%A, Age: %%B, Profession: %%C
)
pause
exit
ব্যাখ্যা:
- এখানে
delims=,;দ্বারা স্পেস ছাড়াও কমা এবং সেমিকোলনকে ডেলিমিটার হিসেবে ব্যবহার করা হয়েছে।
আউটপুট:
Name: John, Age: 25, Profession: Engineer
উদাহরণ ৪: ডেটা এক্সট্রাকশন
ধরা যাক, একটি টেক্সট ফাইল থেকে কিছু নির্দিষ্ট তথ্য বের করতে চাইছেন, যেখানে ডেটা ডেলিমিটার দ্বারা আলাদা করা আছে। এই পরিস্থিতিতে findstr এবং for /f কমান্ডের সংমিশ্রণ ব্যবহার করা যেতে পারে।
Text File (data.txt):
ID:123, Name:John, Age:25
ID:124, Name:Alice, Age:30
ID:125, Name:Bob, Age:22
Batch Script:
@echo off
for /F "tokens=2 delims=:" %%A in ('findstr "Name" data.txt') do (
echo Name: %%A
)
pause
exit
ব্যাখ্যা:
findstr "Name" data.txtকমান্ডটিdata.txtফাইল থেকে শুধুমাত্র সেই লাইনগুলি বের করবে যেখানে"Name"আছে।for /F "tokens=2 delims=:"কমান্ডটি প্রতিটি লাইনে:চিহ্নকে ডেলিমিটার হিসেবে ব্যবহার করে নাম বের করবে।
আউটপুট:
Name:John
Name:Alice
Name:Bob
সারাংশ
Batch Script-এ delimiter ব্যবহার করে ডেটা প্রসেস করা একটি শক্তিশালী কৌশল যা আপনাকে ডেটা ফাইল থেকে নির্দিষ্ট তথ্য বের করার সুবিধা দেয়। FOR /F কমান্ড এবং delims অপশন দিয়ে আপনি ডেলিমিটার দ্বারা আলাদা করা ভ্যালুগুলি সহজেই প্রসেস করতে পারেন। আপনি যে ডেটা ফাইল বা স্ট্রিংটি ব্যবহার করবেন, সেটির মধ্যে ডেলিমিটার ঠিকভাবে চিহ্নিত করলে Batch Script আপনাকে দ্রুত ও কার্যকরীভাবে ডেটা বিশ্লেষণ করতে সহায়তা করবে।
Batch Script-এ findstr কমান্ড ব্যবহার করে টেক্সট ফাইল বা স্ট্রিং-এ নির্দিষ্ট শব্দ বা প্যাটার্ন খুঁজে বের করা যায়। এটি একটি অত্যন্ত কার্যকরী কমান্ড, যা আপনি ফাইলের মধ্যে বা স্ট্যান্ডার্ড আউটপুটে টেক্সট খুঁজতে ব্যবহার করতে পারেন। এই কমান্ডের মাধ্যমে নির্দিষ্ট প্যাটার্ন, শব্দ বা চিহ্নিত অংশের জন্য সার্চ করা সম্ভব।
Findstr কমান্ডের মৌলিক সিনট্যাক্স
findstr [options] "search_string" [file_name]
এখানে:
- search_string: এটি সেই স্ট্রিং বা শব্দ যা আপনি খুঁজতে চান।
- file_name: এটি ঐ ফাইলের নাম যেখানে আপনি খুঁজবেন। এই অংশটি ঐচ্ছিক, কারণ আপনি শুধু কমান্ড লাইনে আউটপুট থেকেও সার্চ করতে পারেন।
- [options]: এটি বিভিন্ন অপশন যা কমান্ডের আচরণ নির্ধারণ করে, যেমন বড় অক্ষর বা ছোট অক্ষরে অনুসন্ধান করা, ইনভার্স অনুসন্ধান ইত্যাদি।
Findstr কমান্ডের বিভিন্ন অপশন
- /i: বড় এবং ছোট অক্ষরের পার্থক্য ছাড়াই খোঁজে (Case Insensitive)।
- /c:"string": পুরো স্ট্রিংকে একক উদ্ধৃতি চিহ্নের মধ্যে খুঁজে।
- /r: একটি রেগুলার এক্সপ্রেশন (Regular Expression) হিসেবে অনুসন্ধান করে।
- /v: খুঁজে পাওয়া লাইনগুলো বাদ দিয়ে বাকি সব লাইন প্রদর্শন করে (Inverse Search)।
- /n: প্রতিটি মিলে যাওয়া লাইনের নম্বর দেখায়।
- /l: টেক্সট ফাইলের মধ্যে লাইন দ্বারা সার্চ করে (Line-based Search)।
- /x: পূর্ণ লাইনটি মেলে তা নিশ্চিত করে (Exact Match)।
- /f:file: একটি ফাইলের মধ্যে থাকা টেক্সট খুঁজে।
Findstr কমান্ডের উদাহরণ
- একটি নির্দিষ্ট শব্দ খোঁজা:
ধরা যাক, আপনার কাছে একটি logfile.txt নামের ফাইল আছে এবং আপনি "Error" শব্দটি খুঁজতে চান:
findstr "Error" logfile.txt
এটি logfile.txt ফাইলে "Error" শব্দটি যেখানে আছে সেখানে সেই লাইনগুলো দেখাবে।
- বড় এবং ছোট অক্ষরের পার্থক্য ছাড়াই খোঁজা (Case Insensitive):
যদি আপনি "error" বা "ERROR" যেকোনো ফর্মে খুঁজতে চান, তবে /i অপশন ব্যবহার করুন:
findstr /i "error" logfile.txt
এটি "error", "ERROR", "ErRoR" ইত্যাদি সব ধরন খুঁজে বের করবে।
- একাধিক শব্দ খোঁজা:
আপনি একাধিক শব্দ খুঁজতেও পারেন। উদাহরণস্বরূপ, "Error" অথবা "Warning" খুঁজতে চাইলে:
findstr "Error Warning" logfile.txt
এটি "Error" অথবা "Warning" যেকোনো একটিকে ধারণকারী লাইনগুলো দেখাবে।
- ফাইলের লাইন নম্বরসহ খোঁজা:
আপনি যদি লাইন নম্বরও দেখতে চান, তাহলে /n অপশন ব্যবহার করুন:
findstr /n "Error" logfile.txt
এটি খুঁজে পাওয়া প্রতিটি লাইন নম্বরসহ দেখাবে, যেমন:
3:Error at line 3
5:Another Error at line 5
- রেগুলার এক্সপ্রেশন (Regular Expression) ব্যবহার:
/r অপশনটি ব্যবহার করে আপনি রেগুলার এক্সপ্রেশন ব্যবহার করে খোঁজা করতে পারেন। উদাহরণস্বরূপ, যদি আপনি এমন লাইনগুলো খুঁজতে চান যেগুলোতে "Error" এবং তারপরে একটি সংখ্যা থাকে, তাহলে:
findstr /r "Error [0-9]" logfile.txt
এটি "Error" এবং তারপরে কোনো সংখ্যার উপস্থিতি চেক করবে।
- ইনভার্স সার্চ (Inverse Search):
ধরা যাক, আপনি "Error" শব্দটি খুঁজতে চান না, তাহলে /v অপশন ব্যবহার করুন:
findstr /v "Error" logfile.txt
এটি "Error" শব্দটি যেসব লাইনেই থাকবে না সেগুলো দেখাবে।
- ফাইলের মধ্যে সঠিক মেলা (Exact Match):
যদি আপনি সঠিক পুরো স্ট্রিং খুঁজতে চান (যেমন একটি এক্সট্রা শব্দ বা ক্যারেক্টার বাদ দেওয়া), তাহলে /x অপশন ব্যবহার করুন:
findstr /x "Complete Error" logfile.txt
এটি শুধুমাত্র সেই লাইনগুলো দেখাবে, যেখানে পুরোপুরি "Complete Error" থাকবে।
Findstr কমান্ড দিয়ে আউটপুট প্রসেস করা
Findstr শুধুমাত্র টেক্সট ফাইল বা স্ট্যান্ডার্ড আউটপুট থেকে সার্চ করার জন্য ব্যবহৃত হয়, তবে আপনি এর আউটপুটকে আরও প্রসেস করতে পারেন।
- ফাইল থেকে নির্দিষ্ট লাইন নিয়ে কাজ করা:
findstr "Success" logfile.txt > result.txt
এটি "Success" শব্দটি যেসব লাইনে আছে সেগুলো result.txt ফাইলে সংরক্ষণ করবে।
- লিস্ট বা লুপের মাধ্যমে ব্যবহার:
আপনি Findstr এর আউটপুটকে লুপের মাধ্যমে প্রসেস করতে পারেন:
for /f "tokens=*" %%a in ('findstr "Error" logfile.txt') do (
echo %%a
)
এটি logfile.txt থেকে "Error" শব্দযুক্ত সব লাইনগুলো প্রসেস করে এবং স্ক্রিপ্টের মধ্যে প্রদর্শন করবে।
Findstr এর ব্যবহারিক প্রয়োগ
- লগ ফাইল স্ক্যানিং: সার্ভার বা অ্যাপ্লিকেশন লগ ফাইলগুলোতে নির্দিষ্ট ত্রুটি বা ঘটনা খোঁজা।
- টেক্সট ফাইলের ডেটা ভ্যালিডেশন: কোনো টেক্সট ফাইলের মধ্যে সঠিক ডেটা বা শব্দ আছে কিনা তা পরীক্ষা করা।
- ফাইলের মধ্যে প্যাটার্ন খোঁজা: যেমন, নির্দিষ্ট ইমেইল বা URL খুঁজে বের করা।
সারাংশ
- findstr কমান্ড টেক্সট ফাইল বা আউটপুটে নির্দিষ্ট শব্দ বা প্যাটার্ন খুঁজতে ব্যবহৃত হয়।
- এটি অনেক শক্তিশালী অপশন দিয়ে আসে, যেমন ইনভার্স সার্চ, রেগুলার এক্সপ্রেশন, এবং লাইন নম্বর প্রদর্শন।
- Findstr কমান্ডের মাধ্যমে আপনি আউটপুট প্রসেস করতে পারেন, যেমন লুপের মধ্যে ফলাফল ব্যবহার বা ফাইলের মধ্যে স্টোর করা।
findstr কমান্ড আপনাকে যেকোনো টেক্সট ফাইল বা আউটপুটের মধ্যে দ্রুত ও কার্যকরভাবে অনুসন্ধান করতে সাহায্য করে, এবং এর অপশনগুলির মাধ্যমে এটি অত্যন্ত নমনীয় এবং শক্তিশালী একটি টুল।
Read more