getline ফাংশন এবং এর প্রয়োগ

Computer Programming - অক (Awk) AWK এ ফাইল হ্যান্ডলিং (File Handling in AWK) |
217
217

getline ফাংশন এবং এর প্রয়োগ

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


getline ফাংশনের ব্যবহার

getline ফাংশন বিভিন্ন উপায়ে ব্যবহার করা যায়:

  1. একটি লাইন পড়া এবং প্রসেস করা:

    awk '{
        line = $0          # বর্তমান লাইনের জন্য
        print line         # প্রিন্ট করা
        getline            # পরবর্তী লাইন পড়া
        print "Next Line:", $0
    }' data.txt

    এই উদাহরণে, getline বর্তমান লাইনের পরবর্তী লাইন পড়ে এবং সেটিকে প্রিন্ট করে।

  2. একটি নির্দিষ্ট ফাইল থেকে লাইন পড়া:

    awk 'BEGIN {
        while ((getline line < "input.txt") > 0) {
            print line
        }
    }'

    এখানে, input.txt ফাইল থেকে এক এক করে প্রতিটি লাইন পড়ে এবং প্রিন্ট করা হয়।

  3. ভেরিয়েবলে লাইন পড়া এবং সংরক্ষণ করা:

    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 ফাংশনের রিটার্ন ভ্যালু

  • 1: যদি getline সফলভাবে একটি লাইন পড়ে।
  • 0: যদি EOF (End of File) পৌঁছে যায়।
  • -1: যদি কোনো ত্রুটি ঘটে (যেমন ফাইলটি পড়ার সময় কোনো সমস্যা)।

উদাহরণ:

awk 'BEGIN {
    if ((getline < "nonexistent.txt") < 0) {
        print "Error reading file!"
    }
}'

getline এর ব্যবহারিক প্রয়োগ

  1. একাধিক ইনপুট ফাইল পড়া:

    awk '{
        print "From main input:", $0
        if (getline line < "secondary.txt") > 0) {
            print "From secondary file:", line
        }
    }' primary.txt

    এখানে, primary.txt থেকে একটি লাইন পড়ার পর secondary.txt থেকে একটি লাইন পড়া হয়।

  2. শর্তাধীন লাইনে যাওয়া:

    awk '{
        if ($1 == "START") {
            getline    # "START" লাইনের পরের লাইন সরাসরি পড়ে
            print "Next line after START:", $0
        }
    }' input.txt

    এখানে, যদি প্রথম ফিল্ডটি "START" হয়, তবে getline ব্যবহার করে পরবর্তী লাইন পড়া এবং প্রিন্ট করা হয়।


সতর্কতা

  • getline ব্যবহার করার সময় সতর্কতা অবলম্বন করা উচিত, কারণ এটি AWK এর স্বাভাবিক ফিল্ড এবং রেকর্ড প্রসেসিং লজিক পরিবর্তন করতে পারে।
  • getline ফাংশন যদি ভুলভাবে ব্যবহৃত হয়, তবে এটি প্রোগ্রামকে জটিল করে তুলতে পারে এবং অনাকাঙ্ক্ষিত আচরণ সৃষ্টি করতে পারে।

সারসংক্ষেপ

AWK এর getline ফাংশন ব্যবহার করে ইনপুট পড়ার প্রক্রিয়াকে আরও নমনীয় ও কাস্টমাইজ করা যায়। এটি ব্যবহারকারীদের নির্দিষ্ট শর্তে ইনপুট পড়া, ফাইল থেকে একাধিক লাইন পড়া, এবং ম্যানুয়ালি ইনপুট হ্যান্ডল করার ক্ষমতা দেয়। তবে getline ব্যবহারের সময় সতর্ক থাকা গুরুত্বপূর্ণ, কারণ এটি AWK এর স্বাভাবিক প্রক্রিয়াকরণ লজিক পরিবর্তন করতে পারে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion