getline
ফাংশন এবং এর প্রয়োগAWK তে getline
ফাংশন একটি শক্তিশালী টুল, যা ফাইল থেকে বা স্ট্যান্ডার্ড ইনপুট থেকে সরাসরি একটি লাইন পড়তে ব্যবহৃত হয়। এটি ব্যবহার করে ইনপুট প্রসেসিং আরও বেশি কাস্টমাইজ করা যায়। AWK এর সাধারণ প্রক্রিয়াকরণ মডেল অনুযায়ী প্রতিটি রেকর্ড স্বয়ংক্রিয়ভাবে প্রসেস করা হলেও, getline
ব্যবহারকারীদের ম্যানুয়ালি একটি লাইন পড়ার ক্ষমতা দেয়।
getline
ফাংশনের ব্যবহারgetline
ফাংশন বিভিন্ন উপায়ে ব্যবহার করা যায়:
একটি লাইন পড়া এবং প্রসেস করা:
awk '{
line = $0 # বর্তমান লাইনের জন্য
print line # প্রিন্ট করা
getline # পরবর্তী লাইন পড়া
print "Next Line:", $0
}' data.txt
এই উদাহরণে, getline
বর্তমান লাইনের পরবর্তী লাইন পড়ে এবং সেটিকে প্রিন্ট করে।
একটি নির্দিষ্ট ফাইল থেকে লাইন পড়া:
awk 'BEGIN {
while ((getline line < "input.txt") > 0) {
print line
}
}'
এখানে, input.txt
ফাইল থেকে এক এক করে প্রতিটি লাইন পড়ে এবং প্রিন্ট করা হয়।
ভেরিয়েবলে লাইন পড়া এবং সংরক্ষণ করা:
awk '{
count += 1
if (getline line < "additional.txt") > 0) {
print "Line from data.txt:", $0
print "Line from additional.txt:", line
}
}' data.txt
এই উদাহরণে, data.txt
ফাইল থেকে বর্তমান লাইন পড়ার পর additional.txt
ফাইল থেকে একটি লাইন পড়া হয় এবং দুটোই প্রিন্ট করা হয়।
getline
ফাংশনের রিটার্ন ভ্যালুgetline
সফলভাবে একটি লাইন পড়ে।awk 'BEGIN {
if ((getline < "nonexistent.txt") < 0) {
print "Error reading file!"
}
}'
getline
এর ব্যবহারিক প্রয়োগএকাধিক ইনপুট ফাইল পড়া:
awk '{
print "From main input:", $0
if (getline line < "secondary.txt") > 0) {
print "From secondary file:", line
}
}' primary.txt
এখানে, primary.txt
থেকে একটি লাইন পড়ার পর secondary.txt
থেকে একটি লাইন পড়া হয়।
শর্তাধীন লাইনে যাওয়া:
awk '{
if ($1 == "START") {
getline # "START" লাইনের পরের লাইন সরাসরি পড়ে
print "Next line after START:", $0
}
}' input.txt
এখানে, যদি প্রথম ফিল্ডটি "START" হয়, তবে getline
ব্যবহার করে পরবর্তী লাইন পড়া এবং প্রিন্ট করা হয়।
getline
ব্যবহার করার সময় সতর্কতা অবলম্বন করা উচিত, কারণ এটি AWK এর স্বাভাবিক ফিল্ড এবং রেকর্ড প্রসেসিং লজিক পরিবর্তন করতে পারে।getline
ফাংশন যদি ভুলভাবে ব্যবহৃত হয়, তবে এটি প্রোগ্রামকে জটিল করে তুলতে পারে এবং অনাকাঙ্ক্ষিত আচরণ সৃষ্টি করতে পারে।AWK এর getline
ফাংশন ব্যবহার করে ইনপুট পড়ার প্রক্রিয়াকে আরও নমনীয় ও কাস্টমাইজ করা যায়। এটি ব্যবহারকারীদের নির্দিষ্ট শর্তে ইনপুট পড়া, ফাইল থেকে একাধিক লাইন পড়া, এবং ম্যানুয়ালি ইনপুট হ্যান্ডল করার ক্ষমতা দেয়। তবে getline
ব্যবহারের সময় সতর্ক থাকা গুরুত্বপূর্ণ, কারণ এটি AWK এর স্বাভাবিক প্রক্রিয়াকরণ লজিক পরিবর্তন করতে পারে।
common.read_more