লিনাক্স কমান্ড শিখুন

নাম

গেক - প্যাটার্ন স্ক্যানিং এবং প্রসেসিং ভাষা

সংক্ষিপ্তসার

Gawk [POSIX বা GNU শৈলী অপশন] -f প্রোগ্রাম-ফাইল [ - ] ফাইল ...
Gawk [POSIX বা GNU শৈলী অপশন] [ - ] প্রোগ্রাম-টেক্সট ফাইল ...

pgawk [ pOSIX বা GNU শৈলী বিকল্প] -f প্রোগ্রাম ফাইল [ - ] ফাইল ...
pgawk [POSIX বা GNU শৈলী অপশন] [ - ] প্রোগ্রাম-টেক্সট ফাইল ...

বিবরণ

Gawk হল AWK প্রোগ্রামিং ভাষা এর GNU প্রকল্প বাস্তবায়ন। এটি POSIX 1003.2 কমান্ড ল্যাঙ্গুয়েজ এবং ইউটিলিটি স্ট্যান্ডার্ডের ভাষাটির সংজ্ঞা অনুসারে কনফার্ম করে। পরিবর্তে এই সংস্করণ AWK প্রোগ্রামিং ল্যাংগুয়েজে , অহো, কার্নিঘাং, এবং উইইনবারগারের বর্ণনা অনুযায়ী, UNIX awk সিস্টেম ভি রিলিজ 4 সংস্করণে পাওয়া অতিরিক্ত বৈশিষ্ট্যগুলির সাথে। Gawk আরো সাম্প্রতিক বেল ল্যাবরেটরিজগুলির awk এক্সটেনশান প্রদান করে এবং GNU- নির্দিষ্ট এক্সটেনশনের একটি সংখ্যা।

Pgawk gawk এর প্রোফাইলিং সংস্করণ। এটি গায়ক সব পদ্ধতিতে অভিন্ন, প্রোগ্রাম ছাড়াও আরও ধীরে ধীরে চালানো, এবং এটি স্বয়ংক্রিয়ভাবে একটি awuprof.out ফাইলের মধ্যে মৃত্যুদন্ড প্রোফাইল তৈরি করে যখন সম্পন্ন। নিচে --profile বিকল্পটি দেখুন।

কমান্ড লাইনটি স্বয়ংক্রিয়ভাবে AWK প্রোগ্রামের পাঠ্য (যদি -f বা --file বিকল্পের মাধ্যমে সরবরাহ না করা হয়), এবং ARGC এবং ARGV পূর্বনির্ধারিত AWK ভেরিয়েবলের মান উপলব্ধ করার জন্য বিকল্পগুলি রয়েছে।

বিকল্প ফরম্যাট

গেক বিকল্পগুলি ঐতিহ্যগত POSIX এক অক্ষর বিকল্প, বা GNU শৈলী দীর্ঘ বিকল্প হতে পারে। POSIX বিকল্পগুলি একক `` - '' দিয়ে শুরু হয়, যখন দীর্ঘ বিকল্পগুলি `` - '' দিয়ে শুরু হয়। উভয় GNU- নির্দিষ্ট বৈশিষ্ট্য এবং POSIX- বাধ্যতামূলক বৈশিষ্ট্য জন্য দীর্ঘ বিকল্প প্রদান করা হয়।

POSIX মান অনুসরণ করে, gawk -Specific বিকল্প- W বিকল্পের আর্গুমেন্টগুলির মাধ্যমে সরবরাহ করা হয়। একাধিক -W বিকল্প সরবরাহ করা হতে পারে নীচের হিসাবে উল্লিখিত প্রতিটি- W বিকল্পের একটি সংশ্লিষ্ট দীর্ঘ বিকল্প আছে। দীর্ঘ বিকল্পের আর্গুমেন্টগুলি একটি = চিহ্ন দ্বারা বিকল্পের সাথে যোগ করা হয়, কোন হস্তক্ষেপের স্থানগুলির সাথে নয়, অথবা পরবর্তী কমান্ড লাইন আর্গুমেন্টে তাদের সরবরাহ করা যেতে পারে। লং বিকল্প সংক্ষিপ্ত করা হতে পারে, যতক্ষণ সংক্ষেপটি অনন্য হয়ে থাকে।

বিকল্প

Gawk বর্ণানুক্রমিকভাবে তালিকাভুক্ত, নিম্নলিখিত অপশনগুলি গ্রহণ করে।

-ফ এফএস

- ক্ষেত্র-বিভাজক Fs ইনপুট ফিল্ড বিভাজক ( FS পূর্বনির্ধারিত পরিবর্তনশীল মান) জন্য fs ব্যবহার করুন।

-v var = val

--assign var = val ভেরিয়েবলের ভ্যালকে মান ভ্যাল প্রদান করুন, প্রোগ্রামটি চালানোর আগে। এই ধরনের পরিবর্তনশীল মান একটি AWK প্রোগ্রামের BEGIN ব্লক উপলব্ধ।

-f প্রোগ্রাম-ফাইল

- ফাইল প্রোগ্রাম-ফাইল প্রথম কমান্ড লাইন আর্গুমেন্টের পরিবর্তে ফাইল প্রোগ্রাম-ফাইল থেকে AWK প্রোগ্রাম উৎসটি পড়ুন। একাধিক -f (বা --file ) বিকল্প ব্যবহার করা যেতে পারে।

-এমএফ এনএনএন

-এমআর NNN মান NNN বিভিন্ন মেমরি সীমা সেট করুন। F পতাকা সর্বাধিক ক্ষেত্রের ক্ষেত্র নির্ধারণ করে, এবং r পতাকা সর্বোচ্চ রেকর্ড আকার নির্ধারণ করে। এই দুই পতাকা এবং -m বিকল্প UNIX awk এর বেল ল্যাবরেটরিজ গবেষণা সংস্করণ থেকে। তারা গাভী দ্বারা উপেক্ষা করা হয়, গেক এর কোন প্রাক সংজ্ঞায়িত সীমা নেই।

-উফ কম্প্যাট

-ই ঐতিহ্যগত

--compat

- সঙ্গতিশীল মোডে বহিরাগত চালান। সামঞ্জস্য মোড মধ্যে, গায়ক ইউনিক্স awk অনুরূপ আচরণ; GNU- নির্দিষ্ট এক্সটেনশনের কেউ স্বীকৃত হয় না। এই বিকল্পের অন্যান্য ফর্মগুলির উপর --traditional ব্যবহার পছন্দসই। আরো তথ্যের জন্য নীচের GNU এক্সটেনশন দেখুন।

-পিপিএল

-W কপিরাইট

--copyleft

- কপিরাইট মান আউটপুটের GNU কপিরাইট তথ্য বার্তার সংক্ষিপ্ত সংস্করণ মুদ্রণ করুন এবং সফলভাবে প্রস্থান করুন

-W ডাম্প-ভেরিয়েবল [ = ফাইল ]

- ডাম্প-ভেরিয়েবল [ = ফাইল ] গ্লোবাল ভেরিয়েবলগুলির একটি সাজানো তালিকা মুদ্রণ করুন, তাদের ধরন এবং ফাইনাল মান ফাইলের জন্য যদি কোন ফাইল সরবরাহ করা হয় তবে gawk বর্তমান ডিরেক্টরির মধ্যে awkvars.out নামে একটি ফাইল ব্যবহার করে।

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

-W সাহায্য

-W ব্যবহার

--help

--usage প্রমিত আউটপুট উপলভ্য বিকল্পের একটি অপেক্ষাকৃত সংক্ষিপ্ত সারাংশ প্রিন্ট করুন। ( জিএনইউ কোডিং স্ট্যান্ডার্ড প্রতি, এই বিকল্পগুলি একটি তাৎক্ষণিক, সফল প্রস্থান করে।)

-উফ লিন্ট [ = মারাত্মক ]

--lint [ = fatal ] অন্যান্য অ্যাডভাইভের প্রয়োগগুলির জন্য সন্দেহভাজন বা অ-পোর্টেবল নির্মাণগুলির সম্পর্কে সতর্কতা প্রদান করুন। মারাত্মক একটি ঐচ্ছিক যুক্তি সঙ্গে, লিন্ট সতর্কতা মারাত্মক ত্রুটি হয়ে ওঠে এটি কঠোর হতে পারে, তবে এর ব্যবহার অবশ্যই ক্লিনার AWK প্রোগ্রামগুলির উন্নয়নে উৎসাহিত করবে।

-জিল-পুরানো

--লিস্ট-পুরানো ইউনিক্স awk এর মূল সংস্করণে পোর্টেবল নয় এমন নির্মাণগুলির সম্পর্কে সতর্কতাগুলি প্রদান করুন।

-জেন- po

--gen-po AWK প্রোগ্রামটি স্ক্যান এবং প্যাটার্ন করে, প্রোগ্রামে সমস্ত স্থানীয়করণযোগ্য স্ট্রিংগুলির জন্য প্রযোজ্য স্ট্যান্ডার্ড আউটপুটে একটি GNU .po ফরম্যাট ফাইল তৈরি করে। প্রোগ্রাম নিজেই সঞ্চালিত হয় না। .po ফাইলগুলির উপর আরো তথ্যের জন্য GNU gettext বিতরণ দেখুন।

-W অ দশমিক-ডেটা

--non-decimal-data ইনপুট ডেটাতে অকটাল এবং হেক্সাডেসিম্যাল মান সনাক্ত করুন। মহান সতর্কতা সঙ্গে এই বিকল্প ব্যবহার করুন!

-জে প্যাসিক্স

--posix এই সামঞ্জস্য মোডটি সক্রিয় করে, নিম্নলিখিত অতিরিক্ত সীমাবদ্ধতাগুলির সাথে:

*

\ x অব্যাহতি শৃঙ্খলা স্বীকৃত হয় না

*

শুধুমাত্র স্পেস এবং ট্যাব ক্ষেত্র বিভাজক হিসাবে কাজ করে যখন FS একটি স্পেসে সেট করা হয়, নতুন লাইনটি নয়।

*

আপনি পরে লাইন চালিয়ে যেতে পারবেন না ? এবং :।

*

শব্দ ফাংশন জন্য সমার্থক func সনাক্ত করা হয় না।

*

অপারেটর ** এবং ** = ^ এবং ^ = এর জায়গায় ব্যবহার করা যাবে না।

*

Fflush () ফাংশনটি উপলব্ধ নয়।

-উ প্রোফাইল [ = prof_file ]

--profile [ = prof_file ] prof_file এ প্রোফাইলিং ডেটা পাঠান ডিফল্ট awkprof.out হয় Gawk সঙ্গে চালানোর সময়, প্রোফাইলে একটি প্রোগ্রাম `` চমত্কার মুদ্রিত '' সংস্করণ। যখন প্যাগাকের সাথে চালানো হয়, তখন প্রোফাইলটি প্রতিটি বিবৃতির বাম মার্জিনের প্রোগ্রামে এবং প্রতিটি ব্যবহারকারী-সংজ্ঞায়িত ফাংশনের জন্য ফাংশন কল সংখ্যাগুলির মধ্যে সঞ্চালন সংখ্যা উল্লেখ করে।

-W পুনরায়-ব্যবধান

--re-interval নিয়মিত এক্সপ্রেশন মিলের মধ্যে অন্তর্বর্তী এক্সপ্রেশনের ব্যবহার সক্রিয় করুন (নিচে নিয়মিত এক্সপ্রেশন দেখুন)। মধ্যবর্তী এক্সপ্রেশন AWK ভাষার ঐতিহ্যগতভাবে উপলব্ধ ছিল না। POSIX মান তাদের যোগ করা, awk এবং egrep একে অপরের সাথে সামঞ্জস্যপূর্ণ করতে। যাইহোক, তাদের ব্যবহার পুরানো AWK প্রোগ্রাম ভাঙ্গার সম্ভাবনা রয়েছে, তাই গেকু কেবল তাদের প্রদান করে যদি তারা এই বিকল্পের সাথে অনুরোধ করা হয়, অথবা যখন --posix নির্দিষ্ট করা হয়।

-উ উৎস প্রোগ্রাম-টেক্সট

--সোর্স প্রোগ্রাম-পাঠ্য AWK প্রোগ্রাম সোর্স কোড হিসাবে প্রোগ্রাম-পাঠ্য ব্যবহার করুন। এই বিকল্পটি কমান্ড লাইনে লেখা সোর্স কোড দিয়ে লাইব্রেরির ফাংশনের সহজ ইন্টারমিডিং ( -f এবং --file বিকল্পগুলির মাধ্যমে ব্যবহৃত) অনুমতি দেয়। এটি মূলত শেল স্ক্রিপ্টগুলির মধ্যে ব্যবহৃত মাঝারি থেকে বড় AWK প্রোগ্রামের জন্য।

-W সংস্করণ

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

- বিকল্পের শেষে সিগন্যাল এটি একটি '`-' 'দিয়ে শুরু করার জন্য AWK প্রোগ্রামে আরও আর্গুমেন্টগুলি অনুমোদন করতে সহায়ক। এটি বেশিরভাগ অন্যান্য POSIX প্রোগ্রামগুলির দ্বারা ব্যবহৃত আর্গুমেন্ট পার্সিং কনফারেন্সের সাথে সঙ্গতিপূর্ণ।

সামঞ্জস্য মোডে, অন্য কোনও বিকল্প অবৈধ হিসাবে পতাকাঙ্কিত, তবে অন্যথায় উপেক্ষা করা হয়। সাধারণ কর্মসূচিতে, যতদিন প্রোগ্রাম পাঠানো হয়, অজানা বিকল্পগুলি AWK প্রোগ্রামে প্রক্রিয়াকরণের জন্য ARGV অ্যারেতে প্রেরণ করা হয়। এটি '`#!' 'এক্সিকিউটেবল দোভাষী যন্ত্রের মাধ্যমে AWK প্রোগ্রাম চালানোর জন্য বিশেষভাবে উপযোগী।

AWK প্রোগ্রাম এক্সিকিউশন

একটি AWK প্রোগ্রাম প্যাটার্ন-কর্ম বিবরণ এবং ঐচ্ছিক ফাংশন সংজ্ঞা একটি ক্রম গঠিত।

প্যাটার্ন { কর্ম বিবরণ }

ফাংশন নাম ( পরামিতি তালিকা ) { বিবৃতি }

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

পরিবেশ পরিবর্তনশীল AWKPATH -f বিকল্পের সাথে নামক উৎস ফাইলগুলি খোঁজার সময় ব্যবহার করার জন্য একটি অনুসন্ধান পাথ উল্লেখ করে। যদি এই ভেরিয়েবলটি বিদ্যমান না থাকে তবে ডিফল্ট পাথটি "।: / Usr / local / share / awk" । (প্রকৃত ডিরেক্টরি পরিবর্তিত হতে পারে, কিভাবে গেক নির্মিত এবং ইনস্টল করা হয়েছিল তার উপর নির্ভর করে।) যদি -f বিকল্পের একটি ফাইলের নামটি `` / '' অক্ষর থাকে তবে কোনও পাথ অনুসন্ধান করা হয় না।

গাওক নিম্নলিখিত আদেশে AWK প্রোগ্রামগুলি চালায় প্রথমে, -v বিকল্প দ্বারা নির্দিষ্ট করা সমস্ত পরিবর্তনশীল অ্যাসাইনমেন্টগুলি সঞ্চালিত হয়। পরবর্তী, গায়ক একটি অভ্যন্তরীণ আকারে প্রোগ্রাম কম্পাইল। তারপর, gawk কোডটি BEGIN ব্লক (গুলি) (যদি থাকে) এ এক্সিকিউট করে, এবং তারপর ARGV অ্যারে নামে প্রতিটি ফাইলটি পড়ার জন্য উত্তোলন করে। যদি কমান্ড লাইনের কোন ফাইল না থাকে, তবে gawk স্ট্যান্ডার্ড ইনপুটটি পড়বে

যদি কমান্ড লাইনের একটি ফাইলের নামটি ফর্ম var = val থাকে তবে এটি একটি ভেরিয়েবল নিয়োগ হিসাবে বিবেচনা করা হয়। পরিবর্তনশীল var মান val উল্লেখ করা হবে । (যেকোন BEGIN ব্লক (গুলি) চালানোর পর এটি ঘটতে পারে।) কমান্ড লাইন ভেরিয়েবল নিয়োগ ভেরিয়েবলের মানগুলিকে গতিশীলভাবে নির্ধারণ করার জন্য সবচেয়ে উপযোগী। ক্ষেত্রগুলি এবং রেকর্ডগুলির মধ্যে কিভাবে কীভাবে বিভক্ত হয় তা নিয়ন্ত্রণ করতে AWK ব্যবহার করে। এটি একক ডাটা ফাইলের উপর একাধিক পাস প্রয়োজন হলে এটি নিয়ন্ত্রণের জন্যও কার্যকরী।

যদি ARGV এর একটি নির্দিষ্ট উপাদানের মূল্য খালি ( "" ) হয়, তবে এটির উপর ফাঁকা ফাঁকা রাখা হয়।

ইনপুট প্রতিটি রেকর্ডের জন্য, এটি AWK প্রোগ্রামের কোন প্যাটার্ন মেলে কিনা দেখতে গাভী পরীক্ষা। প্রতি রেকর্ডের যে প্রতি প্যাটার্নের সাথে মিলিত হয়, সংশ্লিষ্ট কর্মটি কার্যকর করা হয়। প্যাটার্নগুলি প্রোগ্রামে ক্রমানুসারে তারা পরীক্ষা করে।

অবশেষে, সমস্ত ইনপুট নিঃশেষ হয়ে গেলে, gawk END ব্লক (যদি থাকে) এ কোডটি চালায়।

ভেরিয়েবল, রেকর্ডস, এবং ক্ষেত্র

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

রেকর্ডস

সাধারণত, রেকর্ডগুলি নতুন লাইনের অক্ষর দ্বারা পৃথক করা হয়। বিল্ট-ইন ভেরিয়েবল RS- এর মানগুলি বরাদ্দ করে রেকর্ডগুলি কিভাবে পৃথক করা যায় তা আপনি নিয়ন্ত্রণ করতে পারেন। যদি আরএস কোনও অক্ষর হয়, তবে অক্ষরটি রেকর্ডগুলি পৃথক করে। অন্যথায়, আরএস একটি নিয়মিত এক্সপ্রেশন। এই নিয়মিত প্রকাশের সাথে মেলে এমন ইনপুটটিতে পাঠ্য রেকর্ডকে পৃথক করে। যাইহোক, সামঞ্জস্য মোডে, তার স্ট্রিং মানের প্রথম অক্ষরটি রেকর্ডগুলি পৃথক করার জন্য ব্যবহৃত হয়। যদি RS নল স্ট্রিংতে সেট করা থাকে, তবে রেকর্ডগুলি ফাঁকা রেখা দ্বারা পৃথক করা হয়। যখন RS নল স্ট্রিংতে সেট করা হয়, তখন নতুন লাইনের অক্ষর সর্বদা ক্ষেত্র বিভাজক হিসেবে কাজ করে, যেকোন মান FS থাকতে পারে।

ক্ষেত্রসমূহ

প্রতিটি ইনপুট রেকর্ড পড়া হলে, ক্ষেত্র বিভাজক হিসাবে FS ভেরিয়েবলের মান ব্যবহার করে, গায়ক ক্ষেত্রগুলির মধ্যে বিভাজিত করে। যদি FS একক চরিত্র হয়, ক্ষেত্রগুলি অক্ষরের দ্বারা পৃথক করা হয়। যদি FS নাল স্ট্রিং হয়, তাহলে প্রতিটি পৃথক অক্ষর একটি পৃথক ক্ষেত্র হয়ে যায়। অন্যথায়, FS একটি পূর্ণ নিয়মিত এক্সপ্রেশন হতে অনুমিত হয়। বিশেষ ক্ষেত্রে যে FS একক স্থান, ক্ষেত্রগুলি স্পেস এবং / অথবা ট্যাব এবং / অথবা নতুন লাইনের দ্বারা পৃথক করা হয়। (নীচে - পোষাকের আলোচনা দেখুন)। দ্রষ্টব্য: IGNORECASE মান (নীচের দেখুন) FS একটি নিয়মিত এক্সপ্রেশন যখন ক্ষেত্র বিভক্ত হয় প্রভাবিত করে, এবং আরএস একটি নিয়মিত এক্সপ্রেশন যখন রেকর্ড পৃথক করা হয় কিভাবে।

যদি FIELDWIDTHS ভেরিয়েবলটি একটি স্পেস দ্বারা সংখ্যার বিভাজিত তালিকাতে সেট করা থাকে, তবে প্রতিটি ক্ষেত্রটি নির্দিষ্ট প্রস্থের হতে পারে এবং নির্দিষ্ট নির্দিষ্ট প্রস্থগুলির সাহায্যে রেকর্ডটি গলে যায়। এফএস এর মান উপেক্ষা করা হয়। এফএসএর জন্য একটি নতুন মান বরাদ্দ FIELDWIDTHS ব্যবহারকে ওভাররাইড করে, এবং ডিফল্ট আচরণ পুনরুদ্ধার করে।

ইনপুট রেকর্ড প্রতিটি ক্ষেত্রে তার অবস্থান, $ 1 , $ 2 , এবং তাই দ্বারা উল্লেখ করা হতে পারে। $ 0 সম্পূর্ণ রেকর্ড। ধ্রুবক দ্বারা ক্ষেত্রগুলির উল্লেখ করা প্রয়োজন নেই:

n = 5
মুদ্রণ $ n

ইনপুট রেকর্ড পঞ্চম ক্ষেত্র প্রিন্ট।

ভেরিয়েবল NF ইনপুট রেকর্ড ক্ষেত্রের মোট সংখ্যা সেট করা হয়।

অস্তিত্বহীন ক্ষেত্রের (যেমন $ এনএফ এর পরে ক্ষেত্রগুলি) রেফারেন্সগুলি নাল-স্ট্রিং তৈরি করে। যাইহোক, একটি অস্তিত্বহীন ক্ষেত্র (উদাহরণস্বরূপ, $ (NF + 2) = 5 ) এটিকে NF- এর মান বৃদ্ধি করে, তার মান হিসাবে উল্লিখিত স্ট্রিং সহ কোনও মধ্যবর্তী ক্ষেত্র তৈরি করে এবং $ 0 এর মূল্য পুনঃপ্রতিপন্ন করতে দেয় ক্ষেত্রগুলি OFS মান দ্বারা পৃথক করা হয়। নেতিবাচক সংখ্যাযুক্ত ক্ষেত্রের রেফারেন্সগুলি একটি মারাত্মক ত্রুটি সৃষ্টি করে। NF হ্রাস করা হলে নতুন মান হারিয়ে যাওয়া ক্ষেত্রের মানগুলি হ্রাস করা হয় এবং $ 0 এর মূল্য পুনঃপৃষ্ঠা করা হয়, ক্ষেত্রগুলি OFS- এর মান দ্বারা পৃথক করা হয়।

একটি বিদ্যমান ক্ষেত্রের একটি মান বরাদ্দ করা হলে পুরো রেকর্ডটি পুনর্নির্মাণ করা হবে যখন $ 0 উল্লেখ করা হবে। অনুরূপভাবে, $ 0 এর মান নির্ধারণ করা হলে রেকর্ডটি পুনরুত্পাদন করা হবে, ক্ষেত্রগুলির জন্য নতুন মান তৈরি করা হবে।

অন্তর্নির্মিত ভেরিয়েবল

গেক এর বিল্ট-ইন ভেরিয়েবলগুলি হল:

argc

কমান্ড লাইন আর্গুমেন্টের সংখ্যা ( গেক , বা প্রোগ্রাম উৎসের বিকল্পগুলি অন্তর্ভুক্ত করে না)

ARGIND

বর্তমান ফাইলের ARGV ইনডেক্স প্রক্রিয়া হচ্ছে।

argv

কমান্ড লাইন আর্গুমেন্টের Array। অ্যারে 0 থেকে ARGC- থেকে সূচিবদ্ধ করা হয় - 1. ARGV বিষয়বস্তু পরিবর্তনশীল পরিবর্তনশীল তথ্য জন্য ব্যবহৃত ফাইল নিয়ন্ত্রণ করতে পারেন।

BINMODE

অ- POSIX সিস্টেমে, সমস্ত ফাইল I / O- এর জন্য `` বাইনারি '' মোডের ব্যবহার সুনির্দিষ্ট করে। 1, ২, বা 3 এর সাংখ্যিক মানগুলি উল্লেখ করে যে, ইনপুট ফাইল, আউটপুট ফাইল বা সমস্ত ফাইল যথাক্রমে বাইনারি I / O ব্যবহার করা উচিত। "R" এর স্ট্রিং মানগুলি, বা "w" যে ইনপুট ফাইলগুলি বা আউটপুট ফাইলগুলি যথাক্রমে, তা নির্দেশ করে বাইনারি I / O ব্যবহার করা উচিত "Rw" বা "wr" এর স্ট্রিং মানগুলি নির্দিষ্ট করে যে সমস্ত ফাইলগুলি বাইনারি I / O ব্যবহার করা উচিত অন্য কোন স্ট্রিং মান "RW" হিসাবে গণ্য করা হয়, কিন্তু একটি সতর্কতা বার্তা তৈরি করে।

CONVFMT

সংখ্যার জন্য রূপান্তর বিন্যাস, "% .6 গ" , ডিফল্ট দ্বারা।

বেষ্টন করা

বর্তমান পরিবেশের মান ধারণকারী একটি অ্যারে। অ্যারে পরিবেশ ভেরিয়েবল দ্বারা সূচিবদ্ধ হয়, প্রতিটি উপাদান যে পরিবর্তনশীল মান হচ্ছে (উদাহরণস্বরূপ, ENVIRON ["হোম"] হতে পারে / হোম / অ্যারল্ড )। এই অ্যারে পরিবর্তন প্রোগ্রাম দ্বারা প্রভাবিত পরিবেশ প্রভাবিত করে না যা পুনর্নির্দেশ বা সিস্টেম () ফাংশন মাধ্যমে spawns gawk।

ERRNO

যদি একটি সিস্টেম ত্রুটি ঘটে থাকে তাহলে getline এর জন্য একটি পুনঃনির্দেশকরণ করা হয়, একটি পল্লী পড়ার সময়, অথবা বন্ধ অবস্থায় () হলে , ERRNO এর একটি ত্রুটি বর্ণনা করে একটি স্ট্রিং থাকবে। অ ইংরেজি ভাষায় স্থানীয় ভাষার অনুবাদটি মেনে চলে।

FIELDWIDTHS

ক্ষেত্রের বিন্দুর একটি সাদা স্থান দ্বারা পৃথক তালিকা। যখন সেট করা হয়, ফোকাসটি ক্ষেত্র বিভাজক হিসেবে FS ভেরিয়েবলের মান ব্যবহার করার পরিবর্তে নির্দিষ্ট প্রস্থের ক্ষেত্রগুলিতে ইনপুটটি প্যাড করে।

জন্য FILENAME

বর্তমান ইনপুট ফাইলের নাম। যদি কোন ফাইল কমান্ড লাইনের মধ্যে নির্দিষ্ট করা হয় তবে FILENAME এর মান `` - ''। যাইহোক, FILENAME BEGIN ব্লক (যদি getline দ্বারা সেট না হয়) এর মধ্যে অনির্ধারিত হয়

FNR

বর্তমান ইনপুট ফাইলের ইনপুট রেকর্ড নম্বর।

ফাঃ

ইনপুট ফিল্ড বিভাজক, ডিফল্ট দ্বারা একটি স্থান। উপরে ক্ষেত্র দেখুন,

অবহেলার ঘটনা

সমস্ত নিয়মিত এক্সপ্রেশন এবং স্ট্রিং অপারেশনগুলির ক্ষেত্রে সংবেদনশীলতা নিয়ন্ত্রণ করে। যদি IGNORECASE এর একটি অ-শূন্য মান থাকে, তাহলে নিয়মগুলির মধ্যে তুলনা এবং প্যাটার্নের বিন্যাস, এফএস দিয়ে ক্ষেত্র বিভাজক, আরএস সহ পৃথক রেকর্ড, ~ এবং ! ~ এবং gensub () , gsub () , সূচক () , নিয়মিত এক্সপ্রেশন অপারেশন করার সময়, মিল () , বিভাজিত () , এবং উপ () বিল্ট-ইন ফাংশন সব উপেক্ষা করে ক্ষেত্রে। উল্লেখ্য: অ্যারো সাবস্ক্রাইটিংিং প্রভাবিত হয় না , এস্টর () ফাংশনও নেই।

এইভাবে, যদি IGNORECASE শূন্য সমান না হয়, / ab / "ab" , " ab" , " ab" এবং "ab" সব স্ট্রিংগুলিকে মিলিত করে । সমস্ত AWK ভেরিয়েবলের মত, IGNORECASE এর প্রাথমিক মানটি শূন্য হয়, তাই সকল নিয়মিত এক্সপ্রেশন এবং স্ট্রিং অপারেশন সাধারণত কেস-সংবেদনশীল হয় ইউনিক্স অধীনে, সম্পূর্ণ আই এস এ 8859-1 ল্যাটিন -1 অক্ষর সেট ক্ষেত্রে উপেক্ষা করার সময় ব্যবহার করা হয়।

তিসি

একটি AWK প্রোগ্রামের মধ্যে থেকে -lint বিকল্পের গতিশীল নিয়ন্ত্রণ প্রদান করে। সত্য যখন, gawk লিন্ট সতর্কতা প্রিন্ট। মিথ্যা যখন, এটা না যখন স্ট্রিং মান "মারাত্মক" নির্ধারিত হয়, লিন্ট সতর্কবাণীগুলি মারাত্মক ত্রুটি হয়ে ওঠে, ঠিক যেমন - লিস্ট = মারাত্মক । অন্য কোন সত্য মান কেবল সতর্কতা ছাপে।

এন এফ

বর্তমান ইনপুট রেকর্ড ক্ষেত্রের সংখ্যা।

এন আর

ইনপুট রেকর্ড মোট সংখ্যা এতদূর দেখা।

OFMT

ডিফল্ট হিসাবে সংখ্যা, "% .6 গ" , জন্য আউটপুট ফরম্যাট।

OFS

আউটপুট ক্ষেত্র বিভাজক, ডিফল্ট দ্বারা একটি স্থান।

ওআিএস

আউটপুট রেকর্ড বিভাজক, ডিফল্টভাবে একটি নতুন লাইন।

PROCINFO

এই অ্যারের উপাদান চলমান AWK প্রোগ্রাম সম্পর্কে তথ্য অ্যাক্সেস অ্যাক্সেস। কিছু সিস্টেমে, অ্যারের উপাদানগুলি হতে পারে, "গ্রুপ 1 " এর মাধ্যমে " n " গ্রুপের কিছু n এর জন্য , যা প্রক্রিয়াটির সম্পূরক গোষ্ঠীর সংখ্যা। এই উপাদানগুলির জন্য পরীক্ষা করতে অপারেটর ব্যবহার করুন। নিম্নলিখিত উপাদানের উপলব্ধ হতে নিশ্চিত করা হয়:

PROCINFO [ "egid"]

Getegid মান (2) সিস্টেম কল।

PROCINFO [ "euid"]

Geteuid মান (2) সিস্টেম কল

PROCINFO [ "ফাঃ"]

"এফএস" যদি ক্ষেত্রবিশেষে FS দিয়ে বিভাজক প্রভাব হয়, বা "FIELDWIDTHS" যদি FIELDWIDTHS দিয়ে ক্ষেত্র বিভাজন কার্যকর হয়।

PROCINFO [ "gid"]

Getgid মান (2) সিস্টেম কল।

PROCINFO [ "pgrpid"]

বর্তমান প্রক্রিয়ার প্রক্রিয়া গ্রুপ আইডি।

PROCINFO [ "PID"]

বর্তমান প্রক্রিয়া প্রক্রিয়া আইডি।

PROCINFO [ "ppid"]

বর্তমান প্রক্রিয়ার মূল প্রক্রিয়া আইডি

PROCINFO [ "ইউআইডি"]

Getuid মান (2) সিস্টেম কল মূল্য

আরএস

ইনপুট রেকর্ড বিভাজক, ডিফল্টভাবে একটি নতুন লাইন।

রিটুইট

রেকর্ড টারমিনেটর গক ইনপুট পাঠ্যে রাইট সেট করে যা অক্ষর বা RS দ্বারা নির্দিষ্ট রেগুলার অভিব্যক্তি সাথে মিলে যায়।

RSTART

ম্যাচের দ্বারা মিলিত প্রথম অক্ষরের সূচকের () ; 0 যদি কোন মিল না (এইটি বোঝায় যে চরিত্র সূচক এক থেকে শুরু করে।)

RLENGTH

ম্যাচ দ্বারা মিলিত স্ট্রিং এর দৈর্ঘ্য () ; -1 যদি কোন মিল না।

SUBSEP

ডিফল্ট "\ 034" দ্বারা অ্যারে উপাদানে একাধিক সাবস্ক্রিপ্ট আলাদা করা অক্ষরটি

TEXTDOMAIN

AWK প্রোগ্রামের টেক্সট ডোমেন; প্রোগ্রাম এর স্ট্রিং জন্য স্থানীয় অনুবাদ পাওয়া ব্যবহৃত।

অ্যারেগুলির

অ্যারেগুলি বর্গাকার বন্ধনী ( [ এবং ] ) এর মধ্যে একটি অভিব্যক্তি সহ সাবস্ক্রাইব করা হয়। যদি এক্সপ্রেশন একটি এক্সপ্রেশন তালিকা হয় ( expr , expr ...) তারপর অ্যারে সাবস্ক্রিপ্টটি একটি স্ট্রিং যা প্রতিটি এক্সপ্রেশনের (স্ট্রিং) মান সংযোজন করে, SUBSEP ভেরিয়েবলের মান দ্বারা বিভাজিত। এই সুবিধাটি বহুমাত্রিক মাত্রা অ্যারে অনুকরণ করতে ব্যবহৃত হয়। উদাহরণ স্বরূপ:

আমি = "এ"; j = "B"; k = "C"
x [i, j, k] = "হ্যালো, বিশ্ব \ n"

"A \ 034B \ 034C" স্ট্রিং দ্বারা সূচিবদ্ধ করা হয় এমন অ্যারের x এর উপাদানতে "হ্যালো, বিশ্ব \ n" স্ট্রিংটি ধার্য করে । AWK- এ সমস্ত অ্যারেগুলি যৌথ, স্ট্রিং ভ্যালু দ্বারা সূচিত হয়।

বিশেষ অপারেটর যদি একটি অ্যারের একটি নির্দিষ্ট মান গঠিত একটি সূচক আছে কিনা দেখতে যখন একটি সময় বা যখন বিবৃতি ব্যবহার করা যেতে পারে।

যদি (অ্যারে মধ্যে ভ্যালু) প্রিন্ট অ্যারে [ভাল]

অ্যারে একাধিক সাবস্ক্রিপশন আছে, অ্যারে (i, j) ব্যবহার করুন

একটি অ্যারের সব উপাদান উপর পুনরাবৃত্তির জন্য লুপ জন্য একটি নির্মাণ ব্যবহার করা যেতে পারে।

মুছে ফেলার বিবৃতি ব্যবহার করে একটি অ্যারের থেকে একটি উপাদান মুছে ফেলা হতে পারে। মুছে ফেলার বিবৃতিটি একটি অ্যারের সম্পূর্ণ বিষয়বস্তু মুছে ফেলার জন্যও ব্যবহার করা যেতে পারে, শুধু একটি সাবস্ক্রিপ্ট ছাড়া অ্যারের নাম নির্দিষ্ট করে।

পরিবর্তনশীল টাইপিং এবং রূপান্তর

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

একটি সংখ্যা হিসাবে চিকিত্সা করতে একটি পরিবর্তনশীল জোর, এটি যোগ 0; এটি একটি স্ট্রিং হিসাবে চিকিত্সা করা জোর করে, এটি স্ট্রিং নল সঙ্গে সংযুক্ত করুন।

একটি স্ট্রিং একটি নম্বর রূপান্তর করা আবশ্যক যখন, রূপান্তর strtod (3) ব্যবহার করে সম্পন্ন করা হয়। একটি সংখ্যা রূপান্তর রূপান্তর করা হয় CONVFMT এর মানটি sprintf (3) এর জন্য একটি ফরম্যাট স্ট্রিং হিসাবে, যার সাহায্যে ভেরিয়েবলের সাংখ্যিক মানটি যুক্তি হিসাবে রূপান্তরিত হয়। যাইহোক, যদিও AWK এর সমস্ত সংখ্যা ফ্লোটিং-পয়েন্ট, অবিচ্ছেদ্য মানগুলি সবসময় পূর্ণসংখ্যা হিসেবে রূপান্তরিত হয়। সুতরাং, দেওয়া

CONVFMT = "% 2.2f" a = 12b = একটি ""

ভেরিয়েবল b- এর একটি স্ট্রিং মান আছে "12" এবং "12.00" নয়

Gawk নিম্নরূপ তুলনা সঞ্চালিত: দুটি ভেরিয়েবল সাংখ্যিক হয়, তারা সংখ্যাসূচক তুলনা করা হয়। যদি একটি মান সাংখ্যিক হয় এবং অন্য একটি স্ট্রিং মান থাকে যা `` সাংখ্যিক স্ট্রিং '', তাহলে তুলনাগুলিও সংখ্যাসূচকভাবে সম্পন্ন হয়। অন্যথায়, সংখ্যাসূচক মান একটি স্ট্রিং রূপান্তরিত হয় এবং একটি স্ট্রিং তুলনা করা হয়। দুটি স্ট্রিং তুলনা করা হয়, অবশ্যই, স্ট্রিং হিসাবে। লক্ষ্য করুন যে POSIX মানটি `` সাংখ্যিক স্ট্রিং '' এর ধারণাকে সর্বত্র প্রযোজ্য, এমনকি স্ট্রং স্ট্রেন্টসগুলির জন্যও। যাইহোক, এটি পরিষ্কারভাবে ভুল, এবং gawk এই না। (সৌভাগ্যবশত, এই মান পরবর্তী সংস্করণ সংশোধন করা হয়।)

উল্লেখ্য, "57" হিসাবে স্ট্রিং স্ট্যান্টেন্টগুলি, সংখ্যাসূচক স্ট্রিং নয়, তারা স্ট্রিং স্ট্যান্টেন্টস। `` সাংখ্যিক স্ট্রিং '' এর ধারণা শুধুমাত্র ক্ষেত্রের জন্য প্রযোজ্য, getlin ইনপুট, FILENAME , ARGV উপাদান, ENVIRON উপাদান এবং বিভাজক দ্বারা গঠিত একটি অ্যারের উপাদানগুলি () যা সংখ্যাসূচক স্ট্রিংগুলি। মৌলিক ধারণা হল যে ব্যবহারকারীর ইনপুট , এবং শুধুমাত্র ব্যবহারকারীর ইনপুট, যে সংখ্যাগত দেখায়, সেই ভাবেই চিকিত্সা করা উচিত।

অনির্দিষ্ট ভেরিয়েবলের সংখ্যাগত মান 0 এবং স্ট্রিং মান "" (নাল, বা খালি, স্ট্রিং) থাকে।

অক্টাল এবং হেক্সাডেসিমাল কনস্ট্যান্স

3.1 সংস্করণ থেকে শুরু করে , আপনি আপনার AWK প্রোগ্রামের সোর্স কোডে সি-স্টাইল অক্সাল এবং হেক্সাডেসিমাল স্টান্টেন্ট ব্যবহার করতে পারেন। উদাহরণস্বরূপ, অকট্যাল মান 011 দশমিক 9 সমান, এবং হেক্সাডেসিম্যাল মান 0x11 দশমিক 17 এর সমান।

স্ট্রিং ধ্রুবক

AWK- র মধ্যে স্ট্রিং ধ্রুবকগুলি দুটো উদ্ধৃতি ( " ) এর মধ্যে আবদ্ধ অক্ষরের শৃঙ্খলা। স্ট্রিংগুলির মধ্যে, কিছু অবতরণ সিকোয়েন্সগুলি স্বীকৃত হয়, যেমন সি এর মধ্যে রয়েছে:

\\

একটি আক্ষরিক ব্যাকস্ল্যাশ

\ একটি

`সতর্কতা 'অক্ষর; সাধারণত ASCII BEL অক্ষর

\ b হল

ব্যাকস্পেস।

\ চ

আমার মুখোমুখিআমার মুখোমুখি.

\ N

নতুন লাইন.

পান \ r

গাড়ি ফেরত.

\ টি

অনুভূমিক ট্যাব.

\ বনাম

উল্লম্ব ট্যাব

\ x হেক্স সংখ্যা

\ X এর পরে হেক্সাডেসিমেল ডিজিটের স্ট্রিং দ্বারা প্রতিনিধিত্বকৃত অক্ষর ANSIC হিসাবে, নিম্নলিখিত সমস্ত হেক্সাডেসিমেল ডিজিট অব্যাহতির ক্রম অংশ হিসাবে গণ্য করা হয়। (এই বৈশিষ্ট্য আমাদের কমিটি দ্বারা ভাষা নকশা সম্পর্কে কিছু জানা উচিত।) উদাহরণস্বরূপ, "\ x1B" হল ASCIIESC (অব্যাহতি) অক্ষর।

\ ddd

অক্ষর সংখ্যা 1-, 2-, অথবা 3-অঙ্কের অনুক্রম দ্বারা প্রতিনিধিত্ব করে। উদাহরণ, "\ 033" ASCII ESC (অব্যাহতি) অক্ষর।

\ c

আক্ষরিক অক্ষর c

অব্যাহতির ক্রমগুলি ধ্রুবক নিয়মিত এক্সপ্রেশনের (যেমন, / [\ t \ f \ n \ r \ v] / হোয়াইটস্পেস অক্ষরগুলির সাথে মেলে এমন) ব্যবহার করা যেতে পারে।

সামঞ্জস্য মোড মধ্যে, অকটাল এবং হেক্সাডেসিমাল অব্যাহতি অনুক্রম দ্বারা প্রতিনিধিত্ব অক্ষর আক্ষরিক চিকিত্সা করা হয় যখন নিয়মিত এক্সপ্রেশন ধ্রুবক ব্যবহৃত। সুতরাং, / a \ 52b / / a \ * b / এর সমতুল্য

প্যাটার্নস এবং অ্যাকশন

AWK একটি লাইন ভিত্তিক ভাষা। প্যাটার্ন প্রথম আসে, এবং তারপর কর্ম। অ্যাকশন স্টেটমেন্টগুলি { এবং } এ সংযুক্ত আছে। কোনও প্যাটার্ন অনুপস্থিত হতে পারে, অথবা কর্মটি নিখোঁজ হতে পারে, তবে অবশ্যই, উভয়ই নয়। যদি প্যাটার্নটি অনুপস্থিত থাকে, তাহলে ইনপুটটির প্রতিটি রেকর্ডের জন্য অ্যাক্টিভ করা হয়। একটি অনুপস্থিত কর্ম সমতুল্য

{ ছাপা }

যা পুরো রেকর্ড প্রিন্ট।

মন্তব্যগুলি `` # '' অক্ষর দিয়ে শুরু করে এবং লাইনের শেষ পর্যন্ত অব্যাহত থাকে। ফাঁকা লাইনগুলি বিভিন্ন বিবরণের জন্য ব্যবহার করা যেতে পারে। সাধারণত, একটি বিবৃতি একটি নতুন লাইন সঙ্গে শেষ হয়, তবে, এই ``, '', { , ? ] শেষ হয় লাইন জন্য কেস না ? , : , && , বা || । নিম্নোক্ত রেখাগুলিতে থাকা শেষগুলি লাইনগুলি বা অন্যথায় স্বয়ংক্রিয়ভাবে তাদের বিবৃতিগুলি থাকে। অন্য ক্ষেত্রে, একটি লাইন এটি 'দ্বারা শেষ করে অব্যাহত থাকতে পারে, এই ক্ষেত্রে নতুন লাইনটি উপেক্ষা করা হবে।

একটি ``; '' দিয়ে তাদের আলাদা করে একাধিক বিবৃতি এক লাইনের উপর স্থাপিত হতে পারে। এটি একটি প্যাটার্ন-অ্যাকশন জুড়ি (সাধারণ ক্ষেত্রে) এর কর্ম অংশে এবং উভয় প্যাটার্ন-অ্যাকশন স্টেটমেন্টগুলিতে বিবৃতিগুলিতে প্রযোজ্য।

প্যাটার্নস

AWK নিদর্শন নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

BEGIN END / নিয়মিত এক্সপ্রেশন / রিলেশনাল এক্সপ্রেশন প্যাটার্ন এন্ড প্যাটার্ন প্যাটার্ন || নমুনা প্যাটার্ন ? প্যাটার্ন : প্যাটার্ন ( প্যাটার্ন ) ! প্যাটার্ন প্যাটার্ন 1 , প্যাটার্ন

BEGIN এবং END দুটি বিশেষ ধরণের নিদর্শন যা ইনপুটের বিরুদ্ধে পরীক্ষা করা হয় না। সমস্ত BEGIN টির ধরনগুলির অ্যাকশন অংশগুলিকে মার্জ করা হয় যদি সমস্ত বিবৃতিগুলি একক BEGIN ব্লকের লিখিত হয়। কোন ইনপুট পড়ার আগে তাদের মৃত্যুদন্ড কার্যকর করা হয়। একইভাবে, সমস্ত END ব্লক মার্জ করা হয়, এবং যখন সমস্ত ইনপুট নিঃশেষ হয়ে যায় (অথবা যখন একটি প্রস্থান বিবৃতি কার্যকর করা হয় তখন) চালানো হয়। BEGIN এবং END নিদর্শন প্যাটার্ন এক্সপ্রেশন অন্যান্য নিদর্শন সঙ্গে মিলিত করা যাবে না। BEGIN এবং END নিদর্শনগুলি অ্যাকশন অংশগুলি অনুপস্থিত থাকতে পারে না।

/ নিয়মিত এক্সপ্রেশন / নিদর্শনগুলির জন্য, সংশ্লিষ্ট বক্তব্য প্রতিটি ইনপুট রেকর্ডের জন্য সঞ্চালিত হয় যা নিয়মিত প্রকাশের সাথে মিলিত হয়। রেগুলার এক্সপ্রেশনগুলি যেমন egrep (1) এর মত একই, এবং নীচে সংক্ষিপ্ত করা হয়েছে।

একটি সম্পর্কীয় অভিব্যক্তি কর্মের বিভাগে নীচের নির্ধারিত অপারেটরগুলির কোনটি ব্যবহার করতে পারে। এগুলি সাধারণভাবে পরীক্ষা করে যে নির্দিষ্ট ক্ষেত্র নির্দিষ্ট রেগুলার এক্সপ্রেশনগুলির সাথে মেলে কিনা।

&& , || , এবং ! অপারেটরগুলি লজিক্যাল এবং, লজিক্যাল OR এবং লজিক্যাল নোট, যথাক্রমে সি এর মতো। তারা সি-এর মতো ছোট-সার্কিট মূল্যায়নও করে এবং আরও আদিম প্যাটার্ন প্রম্পশেশনের সমন্বয়ে ব্যবহৃত হয়। অধিকাংশ ভাষা হিসাবে, মূল্যায়ন মূল্য পরিবর্তন করতে বন্ধনী ব্যবহার করা যেতে পারে।

?: অপারেটর সি একই অপারেটর মত। প্রথম প্যাটার্ন সত্য হলে পরীক্ষার জন্য ব্যবহৃত প্যাটার্ন দ্বিতীয় প্যাটার্ন, অন্যথায় এটি তৃতীয়। দ্বিতীয় এবং তৃতীয় নিদর্শন মাত্র এক মূল্যায়ন করা হয়।

প্যাটার্ন 1 , এক্সপ্রেশনের প্যাটার্ন ফর্মটি একটি রেঞ্জ প্যাটার্ন বলা হয়। এটি একটি রেকর্ডের সাথে শুরু হওয়া সমস্ত ইনপুট রেকর্ডের সাথে মিলছে যা প্যাটার্ন 1 এর সাথে মেলে এবং একটি রেকর্ড যা প্যাটার্ন ২ এর সাথে মিলিত না হওয়া অবধি অব্যাহত থাকে। এটি অন্য কোন ধরণের প্যাটার্ন এক্সপ্রেশন এর সাথে একত্রিত হয় না।

নিয়মিত অভিব্যক্তি

Regular এক্সপ্রেশন হল egrep পাওয়া প্রসারিত বর্ধিত ধরনের। তারা নিম্নরূপ অক্ষর গঠিত হয়:

অ-মেটাচারার সি -এর সাথে মেলে

\ গ

আক্ষরিক অক্ষর C সাথে মেলে

নতুন অক্ষর সহ কোনও অক্ষর সঙ্গে মেলে

^

একটি স্ট্রিং প্রারম্ভিক সাথে মেলে

$

একটি স্ট্রিং এর শেষে মেলে।

[ abc ... ]

অক্ষর তালিকা, কোন অক্ষর abc সাথে মেলে ...।

[^ abc ... ]

নেগেটিভ অক্ষর তালিকা, abc ছাড়া কোন অক্ষর মেলে ...।

r1 | R2

বিকল্প: ম্যাচগুলি R1 বা R2

r1r2

সমন্বয়: মিলের r1 , এবং তারপর r2

r +

এক বা তার বেশি R এর সাথে মেলে

আর *

শূন্য বা তার বেশি r গুলি মেলে

আর ?

শূন্য বা এক r এর সাথে মেলে

( r )

গ্রুপিং: ম্যাচগুলি r

r { n }

r { n ,}

r { n , m } বন্ধনীগুলির মধ্যে এক বা দুটি সংখ্যা একটি অন্তর্বর্তী এক্সপ্রেশন বোঝায়। যদি বন্ধনী মধ্যে একটি সংখ্যা আছে, পূর্ববর্তী নিয়মিত এক্সপ্রেশন r বার পুনরাবৃত্তি হয়। যদি একটি কমা দ্বারা পৃথক দুটি সংখ্যা আছে, r বার মিটার বার পুনরাবৃত্তি হয়। যদি একটি সংখ্যা একটি কমা দ্বারা অনুসরণ করা হয়, তাহলে r অন্তত n বার পুনরাবৃত্তি করা হয়।

অন্তর্বর্তী এক্সপ্রেশন কেবলমাত্র যদি --posix বা --re -interval কমান্ড লাইনের মধ্যে নির্দিষ্ট করা হয়।

\ Y

একটি শব্দ শুরুতে বা শেষে কোনটি খালি স্ট্রিং সাথে মেলে।

\ b

একটি শব্দ মধ্যে শূন্য স্ট্রিং সঙ্গে মেলে

\ <

একটি শব্দ শুরুতে খালি স্ট্রিং সাথে মেলে।

\>

একটি শব্দ শেষে খালি স্ট্রিং সঙ্গে মেলে

\ W

যেকোনো শব্দ-সংশ্লেষক অক্ষর (অক্ষর, অঙ্ক, বা আন্ডারস্কোর) মেলে

\ ওয়াট

শব্দ-সংযোজন নয় এমন কোন চরিত্রের সাথে মেলে।

\ `

একটি বাফার (স্ট্রিং) শুরুতে খালি স্ট্রিং সাথে মেলে।

\ '

একটি বাফার শেষে খালি স্ট্রিং সঙ্গে মেলে।

স্ট্রিং ধ্রুবকগুলির মধ্যে কার্যকর অব্যাহতির অনুক্রম (নিচে দেখুন) নিয়মিত এক্সপ্রেশনগুলিতেও বৈধ।

অক্ষর ক্লাস একটি নতুন বৈশিষ্ট্য POSIX মান মধ্যে চালু হয়। একটি চরিত্র শ্রেণি একটি নির্দিষ্ট বৈশিষ্ট্যের অক্ষরের তালিকা বর্ণনা করার জন্য একটি বিশেষ চিহ্ন, কিন্তু যেখানে প্রকৃত অক্ষরগুলি দেশ থেকে দেশ এবং / অথবা অক্ষর সেট থেকে অক্ষর সেট থেকে আলাদা হতে পারে। উদাহরণস্বরূপ, মার্কিন যুক্তরাষ্ট্র এবং ফ্রান্সের মধ্যে একটি বর্ণানুক্রমিক চরিত্রের ধারণাটি ভিন্ন।

একটি অক্ষর শ্রেণী শুধুমাত্র একটি অক্ষর তালিকা বন্ধনী ভিতরে একটি নিয়মিত এক্সপ্রেশন মধ্যে বৈধ। চরিত্রের ক্লাসগুলি [: , একটি কীওয়ার্ড ক্লাসকে চিহ্নিত করে, এবং :] থেকে গঠিত । POSIX মান দ্বারা সংজ্ঞায়িত অক্ষর শ্রেণী হল:

[: alnum:]

আলফানিউমেরিক অক্ষর

[: আলফা:]

বর্ণানুক্রমিক অক্ষর

[: ফাঁকা:]

স্পেস বা ট্যাব অক্ষর

[: cntrl:]

কন্ট্রোল অক্ষর

[:অঙ্ক:]

সংখ্যাসূচক অক্ষর

[:চিত্রলেখ:]

মুদ্রণযোগ্য এবং দৃশ্যমান উভয় যে অক্ষর। (একটি স্থানটি মুদ্রণযোগ্য, কিন্তু দৃশ্যমান নয়, যখন এটি একটি উভয়।)

[: নিম্ন:]

নিম্ন-কেস বর্ণানুক্রমিক অক্ষর

[:ছাপা:]

মুদ্রণযোগ্য অক্ষর (অক্ষর যা নিয়ন্ত্রণ অক্ষর নয়)

[: Punct:]

যতিচিহ্ন অক্ষর (অক্ষর যা অক্ষর, সংখ্যা, নিয়ন্ত্রণ অক্ষর, বা স্থান অক্ষর নয়)।

[: স্থান:]

স্থান অক্ষর (যেমন স্থান, ট্যাব, এবং ফর্মিফেড, কয়েকটি নাম)।

[: উপরের:]

উচ্চতর কেস বর্ণানুক্রমিক অক্ষর

[: xdigit:]

অক্ষর যা হেক্সাডেসিমেল সংখ্যা।

উদাহরণস্বরূপ, POSIX মানদণ্ডের আগে, আলফানিউমেরিক অক্ষরগুলিকে মেলানোর জন্য, আপনি / [A-Za-z0-9] / লিখতে হতো। যদি আপনার অক্ষর সেটের মধ্যে অন্যান্য বর্ণানুক্রমিক অক্ষর থাকে, তবে এটি তাদের সাথে মেলে না, এবং যদি আপনার অক্ষর সেটটি আলাদাভাবে ASCII থেকে সংকলিত হয় তবে এটি হয়তো ASCII আলফার অ্যানাউমেরিক অক্ষরের সাথে মেলে না। POSIX অক্ষর শ্রেণীতে, আপনি / [[: alnum:]] / লিখতে পারেন, এবং এটি আপনার অক্ষর সেটের বর্ণানুক্রমিক এবং সংখ্যাসূচক অক্ষরগুলির সাথে মেলে।

দুটি অতিরিক্ত বিশেষ অনুক্রম অক্ষর তালিকা প্রদর্শিত হতে পারে। এটি অ-এএসসিআইআই অক্ষর সেটগুলিতে প্রযোজ্য, যা একক প্রতীক ( কলিং উপাদানগুলি ) ধারণ করে, যা একাধিক অক্ষর দিয়ে প্রতিনিধিত্ব করে, পাশাপাশি বেশীরভাগ অক্ষরকে সংকলন, বা সাজানো, উদ্দেশ্যগুলির জন্য সমান হয়। (উদাহরণস্বরূপ, ফরাসি ভাষায়, একটি সাধারণ `` e '' এবং সমাধিভিত্তিক একটি সমতুল্য।)

সংখ্যার চিহ্ন

একটি সংকলন প্রতীক একটি বহুমুখী অক্ষর সংমিশ্রিত উপাদান [। এবং ।] । উদাহরণস্বরূপ, যদি ch একটি collating উপাদান হয়, তাহলে [[। সি।]] একটি নিয়মিত অভিব্যক্তি হয় যা এই collating উপাদান মেলে, যখন [চ] একটি নিয়মিত এক্সপ্রেশন যা c বা h সাথে মিলিত হয়।

সমতুল্য ক্লাস

একটি সমতুল্য বর্গ সমতুল্য অক্ষর একটি তালিকা জন্য একটি লোকেল-নির্দিষ্ট নাম। [= এবং =] এ নামটি আবদ্ধ করা হয়েছে। উদাহরণস্বরূপ, নাম 'ই,' '`' ই ',' 'এবং` `` `` `` `` `` এই ক্ষেত্রে, [[= ==]] একটি নিয়মিত অভিব্যক্তি , ই ' , বা ই' এর সাথে কোন মিল মেলে

এই বৈশিষ্ট্যগুলি অ ইংরেজি ভাষাভাষী লোকেদের মধ্যে অত্যন্ত মূল্যবান। লাইব্রেরী ফাংশন যা গাভী নিয়মিত এক্সপ্রেশন মিলের জন্য ব্যবহার করে বর্তমানে শুধুমাত্র POSIX অক্ষর ক্লাস সনাক্ত করে; তারা কোটিং আইকন বা সমমানের ক্লাস সনাক্ত করে না।

\ Y , \ B , \ < , \> , \ w , \ w , \ , এবং \ ' অপারেটরগুলি গায়ককে নির্দিষ্ট; তারা জিএনইউ রেগুলার এক্সপ্রেশন লাইব্রেরিতে সুবিধার উপর ভিত্তি করে এক্সটেনশন রয়েছে।

বিভিন্ন কমান্ড লাইন বিকল্পগুলি নিয়মিত এক্সপ্রেশনগুলিতে গাভী অক্ষরগুলি ব্যাখ্যা করে কিভাবে নিয়ন্ত্রণ করে।

কোন বিকল্প নেই

ডিফল্ট ক্ষেত্রে, Gawk POSIX নিয়মিত এক্সপ্রেশন এবং উপরে উল্লিখিত জিএনইউ রেগুলার এক্সপ্রেশন অপারেটর সব সুবিধা প্রদান। তবে, অন্তর্বর্তী এক্সপ্রেশন সমর্থিত নয়।

--posix

শুধুমাত্র POSIX নিয়মিত অভিব্যক্তি সমর্থিত, GNU অপারেটর বিশেষ হয় না। (উদাহরণ, \ w একটি আক্ষরিক W মেলে)। অন্তর্বর্তী এক্সপ্রেশন অনুমোদিত হয়।

--traditional

ঐতিহ্যবাহী ইউনিক্স awk রেগুলার এক্সপ্রেশন মিলিত হয়। GNU অপারেটরগুলি বিশেষ নয়, অন্তর্বর্তী এক্সপ্রেশনগুলি উপলব্ধ নয়, এবং না POSIX অক্ষর শ্রেণিগুলি ( [[: alnum:]] ইত্যাদি। আক্ষরিক এবং হেক্সাডেসিমাল অব্যাহতির অনুক্রম দ্বারা বর্ণিত অক্ষর আক্ষরিক চিকিত্সা করা হয়, এমনকি যদি তারা নিয়মিত এক্সপ্রেশান Metacharacters প্রতিনিধিত্ব।

--re-বিরতি

রেগুলার এক্সপ্রেশন মধ্যে ব্যবধান এক্সপ্রেশন অনুমতি দিন, এমনকি যদি --traditional প্রদান করা হয়েছে।

ক্রিয়াকলাপ

অ্যাকশন বিবৃতি বন্ধনী মধ্যে আবদ্ধ করা হয়, { এবং } । বেশিরভাগ ভাষায় পাওয়া অ্যাকশন স্টেটমেন্টগুলি স্বাভাবিক নিয়োগ, শর্তসাপেক্ষ, এবং লুপিং বিবৃতিগুলির অন্তর্গত। অপারেটর, নিয়ন্ত্রণ বিবৃতি, এবং উপলব্ধ ইনপুট / আউটপুট বিবৃতি সি মধ্যে তাদের পরে patterned হয়।

অপারেটর

এডব্লিউকে অপারেটররা হ'ল হ্রাসকারী অগ্রাধিকারের ভিত্তিতে

( ... )

গোষ্ঠী

$

ক্ষেত্র রেফারেন্স

++ -

প্রিফিক্স এবং পোস্টফিক্স উভয়ই বৃদ্ধি এবং হ্রাস।

^

Exponentiation ( ** ব্যবহার করা যেতে পারে, এবং ** = অ্যাসাইনমেন্ট অপারেটরের জন্য)।

+ -!

অকার্যকর প্লাস, একক বিয়োগ, এবং লজিক্যাল নেগেশন।

* /%

গুণ, বিভাগ, এবং মডুলাস

+ -

সংযোজন এবং বিয়োগ।

স্থান

স্ট্রিং সংযোগ.

<>

<=> =

! = == নিয়মিত রিলেশনাল অপারেটর।

~! ~

নিয়মিত এক্সপ্রেশন ম্যাচ, নেগেটিভ ম্যাচ। নোট: একটি ~ বা ~ ~ বাম দিকে একটি ধ্রুবক নিয়মিত এক্সপ্রেশন ( / foo / ) ব্যবহার করবেন না শুধুমাত্র ডান দিকে এক ব্যবহার করুন। অভিব্যক্তি / foo / ~ এক্সপের অর্থ একই অর্থ (($ 0 ~ / foo /) ~ EXP ) । এটি সাধারণত কি উদ্দেশ্যে ছিল না

মধ্যে

অ্যারের সদস্যপদ।

&&

লজিক্যাল এবং।

||

লজিক্যাল OR

:

সি শর্তাধীন অভিব্যক্তি এই ফর্ম expr1 আছে ? expr2 : expr3 যদি expr1 সত্য হয়, তাহলে এক্সপ্রোফাইলের মূল্য expr2 হয় , অন্যথায় এটি expr3 হয় । শুধুমাত্র expr2 এবং expr3 এক মূল্যায়ন করা হয়।

= + = - =

* = / =% = ^ = নিয়োগ। সম্পূর্ণ নিয়োগ উভয় ( var = মান ) এবং অপারেটর-নিয়োগ (অন্যান্য ফর্ম) সমর্থিত।

কন্ট্রোল বিবৃতি

নিয়ন্ত্রণ বিবৃতি নিম্নরূপ:

যদি ( শর্ত ) বিবৃতি [ অন্য বিবৃতি ] ( শর্ত ) শর্ত জন্য ( expr1 ; expr2 ; expr3 ) বিবৃতি ( অ্যারের মধ্যে var ) বিবৃতি বিবৃতি মুছে ফেলা অ্যারে মুছে দিন [ সূচক ] মুছে ফেলুন অ্যারে প্রস্থান [ এক্সপ্রেশন ] { বিবৃতি }

আই / ও স্টেটমেন্ট

ইনপুট / আউটপুট বিবৃতি নিম্নরূপ হয়:

বন্ধ ( ফাইল [ , কিভাবে ] )

ফাইল, পাইপ বা সহ-প্রক্রিয়া বন্ধ করুন ঐচ্ছিক কীভাবে ব্যবহার করা উচিত, যখন একটি সহ-প্রক্রিয়াতে দুই-উপায় পাইপের এক প্রান্তটি বন্ধ করা উচিত। এটি একটি স্ট্রিং মান হতে হবে, " either " বা "থেকে"

getline

পরবর্তী ইনপুট রেকর্ড থেকে $ 0 সেট করুন; এনএফ , এনআর , এফএনআর সেট করুন

গেটলাইন < ফাইল

ফাইলের পরবর্তী রেকর্ড থেকে $ 0 সেট করুন ; সেট NF

পেতেলেন var

পরবর্তী ইনপুট রেকর্ড থেকে var সেট; এনআর , এফএনআর সেট করুন

Getline var < ফাইল

ফাইলের পরবর্তী রেকর্ড থেকে var সেট করুন

কমান্ড | গেটলাইন [বার]

উপরে চালানো কমান্ডটি আউটপুটটি $ 0 বা var এ রূপান্তর করুন

কমান্ড | & getline [ var ]

উপরে কমান্ড হিসাবে একটি সহ-প্রক্রিয়া পিকিং আউটপুট হিসাবে চালান $ 0 বা var মধ্যে , কো-প্রসেসগুলি একটি গাভী এক্সটেনশন।

পরবর্তী

বর্তমান ইনপুট রেকর্ড প্রসেস বন্ধ করুন। পরবর্তী ইনপুট রেকর্ড পড়া এবং প্রক্রিয়াকরণ AWK প্রোগ্রাম প্রথম প্যাটার্ন সঙ্গে শুরু শুরু। যদি ইনপুট ডেটা শেষ হয় তবে END ব্লক (গুলি) যদি থাকে তবে তা কার্যকর করা হবে।

nextfile

বর্তমান ইনপুট ফাইল প্রক্রিয়াকরণ বন্ধ করুন। পরবর্তী ইনপুট রেকর্ড পরের ইনপুট ফাইল থেকে আসে। FILENAME এবং ARGIND আপডেট করা হয়, FNR 1 এ রিসেট করা হয়, এবং AWK প্রোগ্রামের প্রথম প্যাটার্নের সাথে প্রক্রিয়াকরণ শুরু হয়। যদি ইনপুট ডেটা শেষ হয় তবে END ব্লক (গুলি) যদি থাকে তবে তা কার্যকর করা হবে।

ছাপা

বর্তমান রেকর্ড প্রিন্ট। আউটপুট রেকর্ডটি ORS ভেরিয়েবলের মান দিয়ে সমাপ্ত করা হয়।

মুদ্রণ expr- তালিকা

প্রিন্ট এক্সপ্রেশন প্রতিটি এক্সপোশনটি OFS ভেরিয়েবলের মান দ্বারা পৃথক করা হয়। আউটপুট রেকর্ডটি ORS ভেরিয়েবলের মান দিয়ে সমাপ্ত করা হয়।

মুদ্রণ expr- তালিকা > ফাইল

ফাইলের এক্সপ্রেশন মুদ্রণ করুন প্রতিটি এক্সপোশনটি OFS ভেরিয়েবলের মান দ্বারা পৃথক করা হয়। আউটপুট রেকর্ডটি ORS ভেরিয়েবলের মান দিয়ে সমাপ্ত করা হয়।

printf fmt, expr- তালিকা

বিন্যাস এবং মুদ্রণ।

printf fmt, expr-list > ফাইল

ফরম্যাট এবং ফাইল মুদ্রণ।

সিস্টেম ( সিএমডি-লাইন )

কমান্ড cmd- লাইন সঞ্চালন , এবং প্রস্থান স্ট্যাটাস ফিরে। (এটি অ- POSIX সিস্টেমে উপলব্ধ নাও হতে পারে।)

Fflush ( [ ফাইল ] )

খোলা আউটপুট ফাইল বা পাইপ ফাইলের সাথে সংশ্লিষ্ট কোনও বাফার ফ্লাশ করুনফাইলটি অনুপস্থিত থাকলে, মান আউটপুট ফ্লাশ করা হয়। ফাইল যদি নাল স্ট্রিং হয়, তাহলে সব খোলা আউটপুট ফাইল এবং পাইপ তাদের buffers ফ্লাশ আছে।

মুদ্রণ এবং printf জন্য অতিরিক্ত আউটপুট redirections অনুমোদিত হয়

মুদ্রণ ... >> ফাইল

ফাইলের আউটপুট যোগ করে

মুদ্রণ ... | হুকুম

একটি পাইপ উপর লিখেছেন।

মুদ্রণ ... | & কমান্ড

একটি সহ-প্রক্রিয়াতে তথ্য পাঠায়।

Getline কমান্ডটি ফাইলের শেষে এবং একটি ত্রুটি -1 এ ফেরৎ দেয়। একটি ত্রুটি উপর, ERRNO সমস্যা বর্ণনা একটি স্ট্রিং রয়েছে।

দ্রষ্টব্য: যদি পাইপ বা সহ-প্রক্রিয়া ব্যবহার করা হয় তবে লুপের মধ্যে মুদ্রণ বা printf থেকে, আপনি কমান্ডের নতুন দৃষ্টিনন্দনগুলি তৈরি করতে বন্ধ () ব্যবহার করতে হবে । AWK স্বয়ংক্রিয়ভাবে পাইপ বা সহ-প্রক্রিয়া বন্ধ করে না যখন তারা EOF ফিরে আসে।

Printf বিবৃতি

Printf বিবৃতি এবং sprintf () ফাংশন (নীচের দেখুন ) এর AWK সংস্করণগুলি নিম্নলিখিত রূপান্তর স্পেসিফিকেশন বিন্যাসগুলি স্বীকার করে:

% গ

একটি ASCII চরিত্র % C- এর জন্য ব্যবহৃত আর্গুমেন্ট সাংখ্যিক, এটি একটি অক্ষর হিসেবে গণ্য এবং মুদ্রিত। অন্যথায়, যুক্তিটি একটি স্ট্রিং বলে মনে করা হয় এবং সেই স্ট্রিংয়ের প্রথম অক্ষর মুদ্রিত হয়।

% d , % i

একটি দশমিক সংখ্যা (পূর্ণসংখ্যা অংশ)।

% ই,% ই

ফর্মের একটি ফ্লোটিং পয়েন্ট সংখ্যা [-] d.dddddde [+ -] dd % E বিন্যাস e এর পরিবর্তে e ব্যবহার করে

% চ

ফর্ম একটি ফ্লোটিং পয়েন্ট সংখ্যা [-] ddd.dddddd

% g,% G

% ই বা % ফাঙ্ক রূপান্তর ব্যবহার করুন, যেটি ক্ষুদ্রতর, নন জিন্ফিনেটর শূন্য সহচিহ্নগুলির সাথে। % G বিন্যাস % e এর পরিবর্তে % E ব্যবহার করে।

% ণ

একটি স্বাক্ষরবিহীন অকটাল সংখ্যা (এছাড়াও একটি পূর্ণসংখ্যা)।

% u একটি অজ্ঞাত দশমিক সংখ্যা (আবার, একটি পূর্ণসংখ্যা)।

% s-

একটি অক্ষর স্ট্রিং

% x,% X

একটি স্বাক্ষরবিহীন হেক্সাডেসিমেল সংখ্যা (একটি পূর্ণসংখ্যা) % এক্স বিন্যাস abcdef এর পরিবর্তে ABCDEF ব্যবহার করে।

%%

একটি একক অক্ষর; কোন আর্গুমেন্ট রূপান্তরিত হয়।

ঐচ্ছিক, অতিরিক্ত প্যারামিটারটি % এবং নিয়ন্ত্রণ অক্ষরের মধ্যে থাকতে পারে:

গণনা $

এই বিন্দুতে ফরম্যাটিংয়ের গণনা 'তীব্র যুক্তি ব্যবহার করুন এটি একটি অবস্থানগত স্পেসিফায়ার বলা হয় এবং প্রাথমিকভাবে একটি AWK প্রোগ্রামের মূল পাঠ্যে, বিন্যাসের স্ট্রিংগুলির অনুবাদিত সংস্করণগুলির ব্যবহারের জন্য প্রাথমিকভাবে অভিপ্রায় করা হয়। এটি একটি গাভী এক্সটেনশন।

-

অভিব্যক্তি তার ক্ষেত্রের মধ্যে বাম-ন্যায়সঙ্গত হওয়া উচিত।

স্থান

সাংখ্যিক রূপান্তরগুলির জন্য, একটি স্থান সহ ইতিবাচক মান উপসর্গ করুন, এবং বিয়োগ চিহ্ন সহ নেতিবাচক মানগুলি।

+ +

প্রস্থ সংশোধক (নীচের দেখুন) আগে ব্যবহৃত প্লাস সাইন, সর্বদা সাংখ্যিক রূপান্তর জন্য একটি সাইন সরবরাহ বলে, এমনকি যদি ডাটা ফরম্যাট করা ইতিবাচক হয়। + স্থান সংশোধক অগ্রাহ্য করা

#

নির্দিষ্ট নিয়ন্ত্রণ অক্ষরের জন্য একটি `বিকল্প ফর্ম 'ব্যবহার করুন। % O জন্য , একটি নেতৃস্থানীয় শূন্য সরবরাহ। % X এবং % X এর জন্য , একটি অজানাওর জন্য 0x বা 0x সরবরাহ করে। % ই , % E এবং % f এর জন্য , ফলাফলটি সবসময় একটি দশমিক বিন্দু ধারণ করে। % G এবং % G এর জন্য , শূন্য রেখার ফলাফল থেকে সরানো হয় না।

0

একটি নেতৃস্থানীয় 0 (শূন্য) একটি পতাকা হিসাবে কাজ করে, এটি নির্দেশ করে যে ফাঁকা স্থানগুলির পরিবর্তে শূন্যগুলিতে প্যাড করা উচিত। এটি এমনকি অ-সাংখ্যিক আউটপুট ফরম্যাটে প্রযোজ্য। এই ফ্ল্যাগটি কেবল তখনই প্রভাব ফেলতে পারে যখন প্রিন্ট করার জন্য ক্ষেত্রের প্রস্থটি প্রমিত হয়।

প্রস্থ

ক্ষেত্রটি এই প্রস্থে প্যাড করা উচিত। ক্ষেত্র সাধারণত স্পেস সঙ্গে প্যাড হয়। 0 টি পতাকা ব্যবহার করা হলে, এটি শূন্য সঙ্গে প্যাড হয়।

prec

একটি সংখ্যা যা মুদ্রণের সময় ব্যবহার করার জন্য স্পষ্টতা নির্দিষ্ট করে % E , % E এবং % f ফরম্যাটের জন্য, এটি দশমিক বিন্দুর ডানদিকে মুদ্রিত সংখ্যাগুলিকে নির্দিষ্ট করে। % জি এবং % জি ফর্ম্যাটের জন্য, এটি সর্বোচ্চ সংখ্যক উল্লেখযোগ্য সংখ্যা নির্দিষ্ট করে। % D , % o , % i , % u , % x , এবং % X ফরম্যাটের জন্য এটি প্রিন্টের সংখ্যা কমপক্ষে সংখ্যা নির্দিষ্ট করে। % S এর জন্য এটি স্ট্রিং থেকে সর্বোচ্চ সংখ্যক অক্ষর নির্দিষ্ট করে যা মুদ্রিত হওয়া উচিত।

ANSI C printf () রুটিনগুলির গতিশীল প্রস্থ এবং যথার্থ ক্ষমতাগুলি সমর্থিত। A * প্রস্থ বা প্রিসেন্ট স্পেসিফিকেশনের পরিবর্তে তাদের মানগুলিকে printf বা sprintf () এ যুক্তি তালিকা থেকে নেওয়া হয়। একটি গতিশীল প্রস্থ বা নির্ভুলতা সঙ্গে একটি অবস্থানগত specifier ব্যবহার করতে, ফরম্যাট স্ট্রিং মধ্যে * পরে গণনা $ সরবরাহ। উদাহরণস্বরূপ, "% 3 $ * 2 $। * 1 $ s"

বিশেষ ফাইলের নাম

যখন কোনও প্রিন্ট বা printf ফাইলটি থেকে অথবা / অথবা ফাইল থেকে getline এর মাধ্যমে I / O পুনঃনির্দেশ করা হচ্ছে, gawk কিছু নির্দিষ্ট ফাইলের নামগুলি অভ্যন্তরীণভাবে সনাক্ত করে। এই ফাইলের নামগুলি gawk এর পিতা বা মাতা প্রসেস (সাধারণত শেল) থেকে উত্তরাধিকারসূত্রে প্রাপ্ত ফাইল বর্ণনাকারীকে অ্যাক্সেসের অনুমতি দেয়। এই ফাইলের নামগুলি কমান্ড লাইনের ডাটা ফাইলগুলির নামও ব্যবহার করা যেতে পারে। ফাইলের নামগুলি হল:

আপনার / dev / stdin

স্ট্যান্ডার্ড ইনপুট

আপনার / dev / stdout- এ

স্ট্যান্ডার্ড আউটপুট

আপনার / dev / দ্বারা stderr

স্ট্যান্ডার্ড ত্রুটি আউটপুট

/ dev / fd / n

খোলা ফাইল বর্ণনাকারী n এর সাথে সম্পর্কিত ফাইল।

এই ত্রুটির বার্তাগুলির জন্য বিশেষভাবে দরকারী। উদাহরণ স্বরূপ:

মুদ্রণ "আপনি এটি blew!" > "/ dev / stderr"

যদিও আপনি অন্যথায় ব্যবহার করতে হবে

মুদ্রণ "আপনি এটি blew!" | "বিড়াল 1> ও ২"

নিম্নলিখিত বিশেষ ফাইলের নাম TCP / IP নেটওয়ার্ক সংযোগগুলি তৈরি করার জন্য | & co-process অপারেটরের সাথে ব্যবহার করা যেতে পারে।

/ inet / tcp / lport / rhost / rport

দূরবর্তী পোর্ট রপোর্টে দূরবর্তী হোস্ট হোস্টে স্থানীয় পোর্টের লিংক TCP / IP সংযোগের জন্য ফাইল। সিস্টেম একটি পোর্ট বেছে নিতে 0 একটি পোর্ট ব্যবহার করুন।

/ inet / udp / lport / rhost / rport

অনুরূপ, কিন্তু TCP / IP এর পরিবর্তে UDP / IP ব্যবহার করুন

/ inet / raw / lport / rhost / rport

ভবিষ্যতের ব্যবহারের জন্য সংরক্ষিত

অন্যান্য বিশেষ ফাইলের নামগুলি চলমান গোক প্রক্রিয়ায় তথ্য অ্যাক্সেস প্রদান করে। এই ফাইলের নামগুলি এখন অপ্রচলিত। PROCINFO অ্যারে ব্যবহার করুন তারা প্রদান তথ্য প্রাপ্ত। ফাইলের নামগুলি হল:

আপনার / dev / PID

এই ফাইলটি পড়ার সময়, একটি নতুন লাইনের সাথে সম্পৃক্ত হওয়া, চলতি প্রক্রিয়ার প্রক্রিয়া আইডিটি ফেরত দেয়।

আপনার / dev / ppid

এই ফাইলটি পড়ার সময় একটি নতুন লাইনের সাথে সম্পৃক্ত হওয়া, দশমিকের মধ্যে, বর্তমান প্রক্রিয়াটির মূল প্রক্রিয়া IDটি ফেরত পাঠায়।

আপনার / dev / pgrpid

এই ফাইলটি পড়ার সময় একটি নতুন লাইনের সাথে সম্পৃক্ত হওয়া, চলতি প্রক্রিয়ার প্রক্রিয়া গ্রুপ আইডিটি ফেরত পাঠায়।

আপনার / dev / ব্যবহারকারী

এই ফাইলটি পড়া একটি নতুন রেখার সাথে সমাপ্ত একটি একক রেকর্ড ফেরৎ। ক্ষেত্রগুলি স্পেস দিয়ে পৃথক করা হয়েছে। $ 1 getuid (2) সিস্টেম কল মূল্য, $ 2 geteuid (2) সিস্টেম কল মূল্য, $ 3 getgid (2) সিস্টেম কল মূল্য, এবং $ 4 getegid মূল্য (2) সিস্টেম কল যদি কোনও অতিরিক্ত ক্ষেত্র থাকে, তবে তারা getgroups (2) দ্বারা ফেরত দেওয়া গ্রুপ আইডিগুলি। একাধিক গোষ্ঠী সকল সিস্টেমে সমর্থিত হতে পারে না।

সংখ্যাসূচক কার্যাবলী

AWK এর অন্তর্গত অন্তর্গত ফাংশনগুলি রয়েছে:

atan2 ( y , x )

রেডিয়ানে y / x এর আর্কট্যানজেন্টটি ফেরত পাঠায়।

cos ( expr )

রেফারেন্স মধ্যে যা expr , এর কোসাইন ফিরে।

এক্সপ ( expr )

এক্সপোনেনশিয়াল ফাংশন

int ( expr )

পূর্ণসংখ্যা

লগ ( expr )

প্রাকৃতিক লগারিদম ফাংশন।

RAND ()

0 এবং 1 এর মধ্যে একটি র্যান্ডম সংখ্যা প্রদান করে

পাপ ( expr )

রেফারেন্সগুলির মধ্যে যে রেফারেন্স আছে তা সরিয়ে দেয়।

sqrt ( expr )

বর্গমূল ফাংশন

srand ( [ expr ] )

র্যান্ডম সংখ্যা জেনারেটর জন্য একটি নতুন বীজ হিসাবে expr ব্যবহার করে। যদি কোন expr দেওয়া হয়, দিনের সময় ব্যবহার করা হয়। প্রত্যাবর্তন মান র্যান্ডম সংখ্যা জেনারেটরের জন্য পূর্ববর্তী বীজ হয়।

স্ট্রিং ফাংশন

Gawk নিম্নলিখিত অন্তর্নির্মিত স্ট্রিং ফাংশন আছে:

সমকক্ষ ( এস [ , ডি ] )

উত্স অ্যারে মধ্যে উপাদান সংখ্যা ফেরত। মানগুলি তুলনা করার জন্য গায়ক এর সাধারণ নিয়মগুলি ব্যবহার করে সাজানো হয় এবং s এর সাজানো মানগুলির সূচীগুলি 1 এর সাথে শুরু ক্রিয়েশিয়াল পূর্ণসংখ্যা দিয়ে প্রতিস্থাপিত হয়। যদি ঐচ্ছিক গন্তব্য অ্যারে d নির্দিষ্ট করা হয়, তবে s প্রথমে ডুপ্লিকেট করা হয় , এবং তারপর d সাজানো হয়, সোর্স অ্যারের সূচীগুলি অপরিবর্তিত রেখে।

gensub ( r , s , h [ , t ] )

নিয়মিত এক্সপ্রেশন r এর মিলগুলির জন্য টার্গেট স্ট্রিং টি অনুসন্ধান করুন। যদি h হল একটি স্ট্রিং g বা G এর সাথে শুরু হয়, তাহলে s এর সাথে r এর সমস্ত মিলগুলি প্রতিস্থাপন করুন। অন্যথায়, h হল একটি সংখ্যা যা প্রতিস্থাপিত করার জন্য r এর কোন মিল নির্দেশ করে। যদি টি সরবরাহ করা না হয় তবে তার পরিবর্তে $ 0 ব্যবহার করা হয়। প্রতিস্থাপন পাঠ্যগুলির মধ্যে অনুক্রম \ n , যেখানে n হল 1 থেকে 9 এর একটি অঙ্ক, যেটি শুধুমাত্র ' n ' তম প্যাঁচাযুক্ত subexpression- এর সাথে মেলে এমন পাঠ্য নির্দেশ করতে ব্যবহৃত হতে পারে। অনুক্রম \ 0 সমগ্র মিলিত পাঠ্যটি প্রতিনিধিত্ব করে, যেমন অক্ষর & সাব () এবং gsub () এর বিপরীতে, পরিবর্তিত স্ট্রিংটি ফাংশনের ফলাফল হিসাবে ফিরিয়ে দেওয়া হয় এবং মূল টার্গেট স্ট্রিংটি পরিবর্তিত হয় না

gsub ( r , s [ , t ] )

স্ট্রিং টিতে রেগুলার এক্সপ্রেশন r- এর সাথে মিলিত প্রতিটি substring জন্য, স্ট্রিং গুলি সংশোধন করুন , এবং প্রতিস্থাপন সংখ্যা ফেরত। যদি টি সরবরাহ করা হয় না, তবে $ 0 ব্যবহার করুন প্রতিস্থাপিত টেক্সটের একটি & এর পরিবর্তে টেক্সট সাথে প্রতিস্থাপিত হয় যা আসলে মিলছে। একটি আক্ষরিক & পেতে পেতে & ব্যবহার করুন (এটি "\\" এবং " GAWK " হিসাবে টাইপ করা উচিত : সাব () , gsub () , এবং gensub () এর প্রতিস্থাপন পাঠ্যে & গুলি এবং ব্যাকস্ল্যাশের নিয়মগুলির পূর্ণাঙ্গ আলোচনার জন্য কার্যকরী AWK প্রোগ্রামিং ।)

সূচক ( গুলি , টি )

স্ট্রিং টি এর স্ট্রিং টি এর সূচী ফেরত দেয়, অথবা 0 টি উপস্থিত না থাকলে। (এইটি বোঝায় যে চরিত্র সূচক এক থেকে শুরু করে।)

দৈর্ঘ্য ( [ গুলি ] )

স্ট্রিং গুলি দৈর্ঘ্য, বা যদি সরবরাহ না করা হয় $ 0 এর দৈর্ঘ্য ফেরৎ

ম্যাচ ( গুলি , আর [ , একটি ] )

যে অবস্থানে রেগুলার এক্সপ্রেশন r উপস্থিত হয়, অথবা 0 যদি r উপস্থিত না হয়, এবং RSTART এবং RLENGTH এর মান নির্ধারণ করে তাহলে সেটি অবস্থান দেখায় । লক্ষ্য করুন যে আর্গুমেন্ট অর্ডারটি ~ অপারেটরের জন্য একই। যদি অ্যারেটি সরবরাহ করা হয় তবে একটি সাফ হয়ে যায় এবং তারপর 1 থেকে n এর উপাদানগুলিকে s এর অংশগুলি পূরণ করা হয় যা r এর সংশ্লিষ্ট প্যারেন্টাসাইজড সাবঅপ্রেশনটির সাথে মেলে। এর 0 তম উপাদানটি পুরো রেগুলার এক্সপ্রেশন r দ্বারা মিলিত s এর অংশকে অন্তর্ভুক্ত করে।

বিভক্ত ( গুলি , একটি [ , আর ] )

স্ট্রিং গুলিগুলিকে নিয়মিত এক্সপ্রেশন r এ অ্যারেতে বিভাজিত করে ক্ষেত্রের সংখ্যা ফেরত দেয়। যদি r বাদ দেওয়া হয় তবে FS এর পরিবর্তে ব্যবহার করা হয়। অ্যারে একটি প্রথম সাফ করা হয়। বিভাজন ক্ষেত্রের বিভাজনে অনুরূপ আচরণ করে, উপরে বর্ণিত।

sprintf ( fmt , expr- তালিকা )

Fmt অনুযায়ী প্রিন্ট -তালিকাটি প্রিন্ট করে, এবং ফলাফলের ফলাফলটি ফেরত দেয়

strtonum ( str )

Str পরীক্ষণ, এবং তার সাংখ্যিক মান ফেরৎ। যদি str একটি নেতৃস্থানীয় 0 দিয়ে শুরু হয়, strtonum () অনুমান করে যে str একটি অকটাল নম্বর। যদি str একটি 0x বা 0x নেতৃস্থানীয় শুরু হয়, strtonum () অনুমান করে যে str একটি হেক্সাডেসিমেল সংখ্যা।

উপ ( আর , এস [ , টি ] )

ঠিক যেমন gsub () , কিন্তু কেবলমাত্র প্রথম মিলে যাওয়া substring প্রতিস্থাপিত হয়।

সাবস্ট্র ( গুলি , আমি [ , এন ] )

সবচেয়ে n- চারিত্রিক substring এ ফিরে i এর শুরু। এন বাদ দেওয়া হয়, বাকি গুলি ব্যবহৃত হয়।

দুল ( str )

স্ট্রিং str এর একটি অনুলিপি প্রদান করে, যার মধ্যে উল্লিখিত নিম্ন-কেস প্রতিরূপগুলিতে উল্লিখিত সমস্ত উপরের-কেস অক্ষরগুলির সাথে। অ-বর্ণানুক্রমিক অক্ষর অপরিবর্তিত রাখা হয়।

toupper ( str )

স্ট্রিং str এর একটি অনুলিপি ফেরত পাঠায় , নিম্নস্তরের সকল ছোট-ছোট অক্ষরের সাথে তাদের সংশ্লিষ্ট উপরের-কেস সমকক্ষের অনুবাদ করা হয়। অ-বর্ণানুক্রমিক অক্ষর অপরিবর্তিত রাখা হয়।

সময় ফাংশন

যেহেতু AWK প্রোগ্রামের প্রাথমিক ব্যবহারগুলির মধ্যে একটি সময় স্ট্যাম্পের তথ্য ধারণ করে লগ ফাইলগুলির প্রক্রিয়াকরণ করা হয়, তাই সময় স্ট্যাম্প প্রাপ্ত করার জন্য এবং ফরম্যাট করার জন্য নিম্নলিখিত ফাংশনগুলি প্রদান করে।

mktime ( তারিখগুলি )

সিন্ডাইম দ্বারা ফিরে আসার একই ফর্মের একটি টাইম স্ট্যাম্পে তারিখের রূপান্তর করে। তারিখপেকটি হল YYYY MM DD HH MM SS [DST] ফর্মের একটি স্ট্রিং। স্ট্রিংয়ের বিষয়বস্তু হল ছয় বা সাতটি সংখ্যা, যথাক্রমে যথাক্রমে শতাব্দী, 1 সেপ্টেম্বর, 1২ মাসে, 1 থেকে 31 তারিখের দিন, 0 থেকে ২3 তারিখের সময়, 0 থেকে 0 পর্যন্ত 59, এবং দ্বিতীয় থেকে 0 থেকে 60, এবং একটি ঐচ্ছিক দিবালোক সংরক্ষণ পতাকা। এই সংখ্যার মান নির্দিষ্ট রেঞ্জের মধ্যে থাকা উচিত নয়; উদাহরণস্বরূপ, 1 ঘন্টা -1 মধ্যরাত পর্যন্ত 1 ঘন্টা 1 ঘন্টা আগে। মূল-শূন্য গ্রেগরিয়ান ক্যালেন্ডারটি ২014 বছরের 1 বছর এবং বছরের 1 বছরের পূর্ববর্তী বছরের সাথে অনুমান করা হয়। সময়টি স্থানীয় টাইমজোন হিসাবে বিবেচিত হয়। যদি দিনের আলো সংরক্ষণ পতাকাটি ইতিবাচক হয়, তবে সময়কে ডেলাইটের সময় সংরক্ষণ করা হয়; শূন্য যদি, সময় মান সময় বলে মনে করা হয়; এবং যদি নেতিবাচক (ডিফল্ট), mktime () নির্ধারিত সময়ের জন্য দিবালোকের সংরক্ষণের সময় কার্যকর হয় কিনা তা নির্ধারণের প্রচেষ্টা করে। যদি তারিখপয়েন্টে যথেষ্ট উপাদান থাকে না বা পরিণামস্বরূপ সময় সীমার বাইরে না থাকে, mktime () ফেরৎ -1।

strftime ( [ বিন্যাস [ , টাইমস্ট্যাম্প ]] )

বিন্যাসে স্পেসিফিকেশন অনুযায়ী টাইমস্ট্যাম্পটি বিন্যাস। টাইমস্ট্যাম্পটি একই ফর্মের হতে হবে যেমন সিস্টেম দ্বারা ফেরত দেওয়া হবে ) । যদি টাইমস্ট্যাম্পটি হারিয়ে যায়, তবে দিনের বর্তমান সময়টি ব্যবহার করা হয়। বিন্যাস অনুপস্থিত থাকলে, তারিখ (1) আউটপুটের সমতুল্য একটি ডিফল্ট বিন্যাস ব্যবহৃত হয়। উপলব্ধ হতে নিশ্চিত করা হয় যে ফর্ম্যাট রূপান্তর জন্য ANSI সি মধ্যে strftime () ফাংশন জন্য স্পেসিফিকেশন দেখুন। Strftime (3) এর একটি পাবলিক ডোমেন সংস্করণ এবং এটির জন্য একটি ম্যান পৃষ্ঠাটি গেক্ দিয়ে আসে; যদি সেই সংস্করণটি গেক তৈরির কাজে ব্যবহৃত হয়, তাহলে সেই ম্যান পৃষ্ঠায় বর্ণিত সমস্ত রূপান্তরগুলি ফাঁকা রাখা যায়।

systime ()

Epoch (POSIX সিস্টেমের উপর 1970-01-01 00:00:00 ইউটিসি) থেকে দিনের বর্তমান সময়টি সেকেন্ডের সংখ্যা হিসাবে দেখায়।

বিট ম্যানিপুলেশন ফাংশন

3.1 গেক এর সংস্করণের সাথে শুরু, নিম্নলিখিত বিট ম্যানিপুলেশন ফাংশনগুলি উপলব্ধ। তারা অস্তিত্বহীন দীর্ঘ ইন্টিজারগুলিতে দ্বিগুণ স্পষ্টতা ভাসমান পয়েন্ট মান রূপান্তর করে অপারেশন করে কাজ করে, এবং তারপর ফলাফল ফ্লোটিং পয়েন্টে রূপান্তরিত করে। ফাংশনগুলি হল:

এবং ( v1 , v2 )

V1 এবং v2 দ্বারা প্রদত্ত মানগুলির বিটwise এবং পুনঃনাম প্রদান করুন।

অভিযোগ ( Val )

Val এর bitwise পরিপূরক ফিরে।

lshift ( ভল , গণনা )

গণনা বিট দ্বারা বামে স্থানান্তরিত, মূল্যের মূল্য ফিরে আসুন

বা ( v1 , v2 )

V1 এবং v2 দ্বারা প্রদত্ত মানগুলির বিটwise বা ত্রৈমাপে ফিরে আসুন।

rshift ( ভল , গণনা )

গণনা বিট দ্বারা ডান স্থানান্তরিত, Val এর মান ফিরে।

xor ( v1 , v2 )

V1 এবং v2 দ্বারা প্রদত্ত মানের bitwise XOR ফিরে আসুন।

আন্তর্জাতিকীকরণ কার্যাবলী

3.1 সংস্করণ থেকে শুরু করে, রান-এ স্ট্রিং অনুবাদ করার জন্য আপনার AWK প্রোগ্রামের মধ্যে নিম্নলিখিত ফাংশনগুলি ব্যবহার করা হতে পারে। সম্পূর্ণ বিবরণের জন্য, দেখুন GAWK: কার্যকরী AWK প্রোগ্রামিং

bindtextdomain ( ডিরেক্টরি [ , ডোমেইন ] )

নির্দেশিকা উল্লেখ করে যেখানে MO ফাইলগুলির জন্য দেখায়, যদি তারা `` মান '' অবস্থানে (যেমন, পরীক্ষার সময়) স্থাপন করা যাবে না বা স্থাপন করা যাবে না। এটি এমন নির্দেশিকাটি ফেরৎ দেয় যেখানে ডোমেন `` আবদ্ধ। ''

ডিফল্ট ডোমেন TEXTDOMAIN এর মান। যদি ডিরেক্টরীটি নাল স্ট্রিং ( "" ) হয়, তাহলে বিন্ডেস্টক্সডেন () প্রদত্ত ডোমেনের জন্য বর্তমান বাঁধাই প্রদান করে

dcgettext ( স্ট্রিং [ , ডোমেন [ , বিভাগ ]] )

লোকাল শ্রেণী বিভাগের জন্য টেক্সট ডোমেন ডোমেইনের স্ট্রিংের অনুবাদটি ফেরত পাঠায়। ডোমেনের জন্য ডিফল্ট মান হল TEXTDOMAIN- এর বর্তমান মান। বিভাগের জন্য ডিফল্ট মান হল "LC_MESSAGES"

যদি আপনি ক্যাটাগরির জন্য একটি মান সরবরাহ করেন, এটি GAWK- এ বর্ণিত পরিচিত স্থানীয় শ্রেণির একটির সমতুল্য হতে হবে : কার্যকরী AWK প্রোগ্রামিং আপনাকে অবশ্যই একটি টেক্সট ডোমেন সরবরাহ করতে হবে। যদি আপনি বর্তমান ডোমেন ব্যবহার করতে চান তবে TEXTDOMAIN ব্যবহার করুন।

dcngettext ( স্ট্রিং 1 , স্ট্রিং ২ , নম্বর [ , ডোমেন [ , বিভাগ ]] )

লোকেল শ্রেণী বিভাগের জন্য পাঠ্য ডোমেন ডোমেনে স্ট্রিং 1 এবং স্ট্রিং 2 এর অনুবাদ সংখ্যাটির জন্য ব্যবহৃত বহুবচন। ডোমেনের জন্য ডিফল্ট মান হল TEXTDOMAIN- এর বর্তমান মান। বিভাগের জন্য ডিফল্ট মান হল "LC_MESSAGES"

যদি আপনি ক্যাটাগরির জন্য একটি মান সরবরাহ করেন, এটি GAWK- এ বর্ণিত পরিচিত স্থানীয় শ্রেণির একটির সমতুল্য হতে হবে : কার্যকরী AWK প্রোগ্রামিং আপনাকে অবশ্যই একটি টেক্সট ডোমেন সরবরাহ করতে হবে। যদি আপনি বর্তমান ডোমেন ব্যবহার করতে চান তবে TEXTDOMAIN ব্যবহার করুন।

USER- নির্ধারিত ফাংশন

AWK- তে কাজগুলি নিম্নরূপ বর্ণিত হয়:

ফাংশন নাম ( পরামিতি তালিকা ) { বিবৃতি }

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

যেহেতু ফাংশনগুলি মূলত AWK ভাষার অংশ ছিল না তাই স্থানীয় ভেরিয়েবলের বিধানটি অদ্ভুত ছিল: তারা পরামিতি তালিকায় অতিরিক্ত পরামিতি হিসাবে ঘোষিত হয়। প্রচলন হল প্যারামিটার তালিকাতে অতিরিক্ত স্পেসগুলির মাধ্যমে বাস্তব প্যারামিটার থেকে লোকাল ভেরিয়েবল আলাদা করা। উদাহরণ স্বরূপ:

ফাংশন f (p, q, a, b) # a এবং b স্থানীয় হয় {...} / abc / {...} f (1, 2); ...}

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

কার্যাবলীগুলি একে অপরের সাথে কল করতে পারে এবং পুনরাবৃত্তি হতে পারে। লোকাল ভেরিয়েবল হিসাবে ব্যবহৃত ফাংশন পরামিতিগুলি ফাঁকা স্ট্রিং এবং ফাংশন অলংকরণের উপর নম্বর শূন্যগুলিতে ইনিশিয়ালাইজ করা হয়।

একটি ফাংশন থেকে একটি মান ফিরে ফেরত expr ব্যবহার করুন। কোন মান উপলব্ধ করা হয় না ফেরত মান, যদি undefined হয়, অথবা ফাংশন `` বন্ধ পড়া '' ফিরে ফেরত।

যদি -লিন্ট প্রদান করা হয়, তবে গ্যার্কে প্যাশার সময় অনির্ধারিত ফাংশনগুলিতে কলগুলির বিষয়ে সতর্ক করে দেওয়া হয়, রান-এর পরিবর্তে। রান সময় একটি অনির্ধারিত ফাংশন কল একটি মারাত্মক ত্রুটি।

ফাংশনের জায়গায় Func শব্দ ব্যবহার করা যেতে পারে।

যান্ত্রিকভাবে নতুন কাজ লোড হচ্ছে

3.1 সংস্করণের সাথে শুরু, আপনি গতিশীলভাবে চলমান গায়ক দোভাষীতে নতুন বিল্ট-ইন ফাংশন যুক্ত করতে পারেন। সম্পূর্ণ বিবরণ এই ম্যানুয়েল পৃষ্ঠা সুযোগ অতিক্রম করা হয়; GAWK দেখুন: কার্যকরী AWK প্রোগ্রামিং বিস্তারিত জানার জন্য।

এক্সটেনশন ( বস্তু , ফাংশন )

গতিশীলভাবে অবজেক্টের নাম অনুসারে ভাগ করা বস্তু ফাইলটি লিঙ্ক করুন, এবং সেই অবজেক্টে ফাংশন চালু করুন, তা শুরু করতে হবে। এই উভয় স্ট্রিং হিসাবে প্রদান করা উচিত উভয়। ফাংশন দ্বারা ফিরে মান ফিরে।

এই ফাংশন GAWK- এ উপলব্ধ এবং নথিভুক্ত করা হয় : কার্যকরী AWK প্রোগ্রামিং , কিন্তু এই বৈশিষ্ট্যটি সম্পর্কে পরবর্তী রিলিজে পরিবর্তন হওয়ার সম্ভাবনা রয়েছে। আমরা দৃঢ়ভাবে সুপারিশ করব যে আপনি এই বৈশিষ্ট্যটি ব্যবহার করবেন না যা আপনি পুনরায় করতে ইচ্ছুক নন।

সংকেত

pgawk দুটি সংকেত গ্রহণ করে। SIGUSR1 এটি প্রোফাইল ফাইলটিতে প্রোফাইল এবং ফাংশন কল স্ট্যাক ডাম্প করতে দেয়, যা হয় awkprof.out , বা যেকোনো ফাইল --profile বিকল্পের সাথে নামকরণ করা হয়। এটি তারপর রান অব্যাহত। SIGHUP এটি প্রোফাইল এবং ফাংশন কল স্ট্যাক ডাম্প এবং তারপর প্রস্থান থেকে এটি।

উদাহরণ

সকল ব্যবহারকারীর লগইন নামগুলি মুদ্রণ করুন এবং সাজান: BEGIN {FS = ":"} {মুদ্রণ $ 1 | "সাজানোর"} একটি ফাইলের মধ্যে লাইন গণনা করুন: {nlines ++} END {print nlines} ফাইলের সংখ্যা অনুসারে প্রতিটি লাইনের পূর্বে: {print FNR , $ 0} কননেটেনেট এবং লাইন নম্বর (একটি থিমের একটি বৈচিত্র): {print NR, $ 0}

Internalization

স্ট্রিং ধ্রুবকগুলি অক্ষরগুলির সংখ্যার দ্বিগুণ উদ্ধৃতির মধ্যে রয়েছে। অ-ইংরেজী ভাষাভাষী পরিবেশে, স্থানীয় ভাষার ভাষায় অনুবাদের প্রয়োজন অনুযায়ী AWK প্রোগ্রামের স্ট্রিংগুলি চিহ্নিত করা সম্ভব। এই স্ট্রিংগুলি AWK প্রোগ্রামে একটি শীর্ষস্থানীয় আন্ডারস্কোর (`` _ '') দিয়ে চিহ্নিত করা হয়েছে। উদাহরণ স্বরূপ,

gawk 'BEGIN {print} হ্যালো, বিশ্ব "}'

সর্বদা হ্যালো প্রিন্ট , বিশ্বের কিন্তু,

gawk 'BEGIN {print _ "হ্যালো, বিশ্ব"}'

ফ্রান্সে মঙ্গলবার, মন্ডে মুদ্রণ করতে পারে

একটি স্থানীয় AWK প্রোগ্রাম উত্পাদন এবং চালানোর মধ্যে জড়িত বিভিন্ন পদক্ষেপ আছে।

1।

পাঠ্য ডোমেনটি আপনার প্রোগ্রামের সাথে যুক্ত একটি নাম সেট করতে TEXTDOMAIN ভেরিয়েবলের একটি মান নির্দিষ্ট করার জন্য একটি BEGIN কর্ম যুক্ত করুন।


BEGIN {TEXTDOMAIN = "myprog"}

এটি gawk আপনার প্রোগ্রামের সাথে যুক্ত .mo ফাইল খুঁজে পেতে সাহায্য করে। এই ধাপ ছাড়া, gawk বার্তা পাঠ্য ডোমেন ব্যবহার করে, সম্ভবত আপনার প্রোগ্রামের জন্য অনুবাদের অন্তর্ভুক্ত না।

2।

সব স্ট্রিং চিহ্নিত করুন যা নেতৃস্থানীয় আন্ডারকোভার দ্বারা অনুবাদ করা উচিত।

3।

যদি প্রয়োজন হয়, যথাযথ হিসাবে আপনার প্রোগ্রামের dcgettext () এবং / বা bindtextdomain () ফাংশন ব্যবহার করুন।

4।

আপনার প্রোগ্রামের জন্য একটি .po ফাইল তৈরি করার জন্য gawk --gen-po -f myprog.awk> myprog.po চালান।

5।

উপযুক্ত অনুবাদ প্রদান করুন, এবং সংশ্লিষ্ট এবং .mo ফাইলটি ইনস্টল করুন।

আন্তর্জাতিকীকরণ বৈশিষ্ট্য GAWK সম্পূর্ণ বিস্তারিত বর্ণিত হয় : কার্যকরী AWK প্রোগ্রামিং

পিসিক্স কম্পেটিবিলিটি

গোক জন্য একটি প্রাথমিক লক্ষ্য POSIX মান সঙ্গে সঙ্গতিপূর্ণ, সেইসাথে UNIX awk সর্বশেষ সংস্করণ হিসাবে। এই প্রেক্ষাপটে , গায়ক নিম্নলিখিত ব্যবহারকারী দৃশ্যমান বৈশিষ্ট্যাবলীগুলিকে অন্তর্ভুক্ত করেন যা AWK বইয়ের মধ্যে বর্ণিত নয়, কিন্তু awk এর বেল ল্যাবরেটরিজ সংস্করণগুলির অংশ, এবং POSIX মানতে রয়েছে।

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

বাস্তবায়ন নির্দিষ্ট বৈশিষ্ট্য জন্য- W বিকল্প POSIX মান থেকে।

আর্গুমেন্ট প্রক্রিয়াকরণের সময়, গজ বিশেষ অপশন `` - '' ব্যবহার করে আর্গুমেন্টের শেষ সংকেত। সামঞ্জস্যের মোডে, এটি সতর্ক করে দেয় কিন্তু অন্যথায় অনির্ধারিত বিকল্পগুলি উপেক্ষা করে। স্বাভাবিক অপারেশন এ, এই ধরনের যুক্তিগুলি AWK প্রোগ্রামে প্রক্রিয়াকরণের জন্য প্রেরণ করা হয়।

AWK বই srand এর রিটার্ন মান নির্ধারণ করে না () । POSIX মান এটি র্যান্ডম সংখ্যা সিকোয়েন্সের নজর রাখা অনুমতি দেয়, এটি ব্যবহার করে বীজ ফেরত হয়েছে। অতএব গাঁয়ের মধ্যে srand () এছাড়াও তার বর্তমান বীজ ফেরৎ।

অন্যান্য নতুন বৈশিষ্ট্যগুলি হল: একাধিক -f বিকল্প ব্যবহার (MKS awk থেকে); ENVIRON অ্যারে; \ a এবং \ v এভিয়েশন সিকোয়েন্সগুলি (মূলত গেকের মধ্যে সম্পন্ন এবং বেল ল্যাবরেটরিজ সংস্করণে ফিরে আসেন); দুল () এবং টুপির () বিল্ট-ইন ফাংশনগুলি (বেল ল্যাবরেটরিজ সংস্করণ থেকে); এবং printf এ ANSI সি রূপান্তর বিশেষ উল্লেখ (বেল ল্যাবরেটরিজ সংস্করণ প্রথম কাজ)।

ঐতিহাসিক বৈশিষ্ট্য

ঐতিহাসিক AWK বাস্তবায়নে দুটি বৈশিষ্ট্য আছে যা গেক সমর্থন করে। প্রথমত, দৈর্ঘ্যটি কল করা সম্ভব () বিল্ট ইন ফাংশন না শুধুমাত্র কোন যুক্তি ছাড়া, এমনকি এমনকি বন্ধনী ছাড়াও! সুতরাং,

একটি = দৈর্ঘ্য # পবিত্র Algol 60, ব্যাটম্যান!

হয় উভয় হিসাবে একই

একটি = দৈর্ঘ্য ()
একটি = দৈর্ঘ্য ($ 0)

এই বৈশিষ্ট্যটিকে POSIX মানিতে `` অপ্রচলিত '' হিসাবে চিহ্নিত করা হয়েছে, এবং কমান্ড লাইনে যদি --lint নির্দিষ্ট করা হয় তবে gawk এর ব্যবহার সম্পর্কে একটি সতর্কবাণী প্রদান করে।

অন্য একটি বৈশিষ্ট্য হল, কিছুক্ষণের জন্য শরীরের বাইরে অবিরত বা বিরতির বিবৃতি ব্যবহার করা হয়, জন্য , বা লুপ করে। ঐতিহ্যগত AWK প্রয়োগগুলি পরবর্তী বিবৃতির সমতুল্য যেমন ব্যবহার করেছে। Gawk এই ব্যবহারের সমর্থন করে যদি --traditional উল্লেখ করা হয়েছে।

জিএনইউ এক্সটেনশনগুলি

Gawk POSIX awk তে অনেক এক্সটেনশন আছে। তারা এই বিভাগে বর্ণিত হয়। এখানে বর্ণিত সমস্ত এক্সটেনশানগুলিকে --traditional বিকল্পের সাথে gawk চালু করে অক্ষম করা যেতে পারে।

Gawk এর নিম্নে বৈশিষ্ট্যগুলি POSIX awk এ উপলব্ধ নয়।

*

-f বিকল্পের মাধ্যমে নামিত ফাইলগুলির জন্য কোন পথ অনুসন্ধান করা হয় না। সুতরাং AWKPATH পরিবেশ পরিবর্তনশীল বিশেষ নয়।

*

\ X অব্যাহতি অনুক্রম (- পোপসস সহ অক্ষম।)

*

Fflush () ফাংশন। (- পোপসস সহ অক্ষম।)

*

পরে লাইন চালিয়ে যাওয়ার ক্ষমতা ? এবং :। (- পোপসস সহ অক্ষম।)

*

AWK প্রোগ্রামের আংশিক এবং হেক্সাডেসিমাল স্ট্রাইং

*

ARGIND , BINMODE , ERRNO , LINT , RT এবং TEXTDOMAIN ভেরিয়েবল বিশেষ নয়।

*

IGNORECASE পরিবর্তনশীল এবং এর পার্শ্ব প্রতিক্রিয়া উপলব্ধ নেই।

*

FIELDWIDTHS ভেরিয়েবল এবং স্থির-প্রস্থ ক্ষেত্র বিভাজন।

*

PROCINFO অ্যারে উপলব্ধ নয়।

*

একটি নিয়মিত অভিব্যক্তি হিসাবে আরএসএস ব্যবহার।

*

আই / ও পুনঃনির্দেশের জন্য উপলব্ধ বিশেষ ফাইলের নাম স্বীকৃত নয়।

*

সহ-প্রসেস তৈরি করার জন্য | এবং অপারেটর

*

পৃথক অক্ষরগুলিকে FS মান হিসাবে উল্লিখিত স্ট্রিং ব্যবহার করে বিভক্ত করার ক্ষমতা, এবং বিভক্ত তৃতীয় যুক্তি হিসাবে ()

*

বন্ধ () ফাংশন ঐচ্ছিক দ্বিতীয় আর্গুমেন্ট

*

ম্যাচ () ফাংশনটিতে ঐচ্ছিক তৃতীয় আর্গুমেন্ট।

*

Printf এবং sprintf () এর সাথে অবস্থানগত স্পেসিফায়ার ব্যবহার করার ক্ষমতা

*

একটি অ্যারের সমগ্র বিষয়বস্তু মুছে ফেলার জন্য মুছে ফেলা অ্যারে ব্যবহার।

*

বর্তমান ইনপুট ফাইল প্রক্রিয়াকরণ পরিত্যাগ করতে nextfile ব্যবহার।

*

(এবং) , () , asort () , bindtextdomain () , compl () , dcgettext () , gensub () , lshift () , mktime () , অথবা () , rshift () , strftime () , strtonum () , systime () এবং xor () ফাংশন

*

স্থানীয়করণযোগ্য স্ট্রিং

*

এক্সটেনশন () ফাংশন সঙ্গে গতিশীলভাবে নতুন বিল্ট ইন ফাংশন যোগ করা।

AWK বই বন্ধ () ফাংশনের রিটার্ন মান নির্ধারণ করে না। Gawk এর বন্ধ () fclose (3), অথবা pclose (3) থেকে মান ফেরত, একটি আউটপুট ফাইল বা পাইপ বন্ধ করার সময়, যথাক্রমে। একটি ইনপুট পাইপ বন্ধ করার সময় এটি প্রক্রিয়াটির প্রস্থান স্থিতিটি ফেরত দেয়। রিটার্ন মান হল -1 যদি নামযুক্ত ফাইল, পাইপ বা সহ-প্রক্রিয়া পুনঃনির্দেশিত না হয়।

যখন গাভী -traditional বিকল্পের সাথে প্রযোজ্য হয়, যদি- F বিকল্পে fs যুক্তিটি `` t '' হয়, তাহলে FS ট্যাব অক্ষরে সেট হয়। লক্ষ্য করুন যে গাভী -F \ t টাইপ করা হচ্ছে ... সহজেই শেলটি `` টি, '' উদ্ধৃত করে, এবং `` \ t '' -f বিকল্পে পাস করতে পারে না। এই একটি বরং কুশ্রী বিশেষ কেস থেকে, এটি ডিফল্ট আচরণ নয়। এই আচরণটিও ঘটবে না যদি --posix নির্দিষ্ট করা হয়। ক্ষেত্র বিভাজক হিসাবে সত্যিই একটি ট্যাব অক্ষর পেতে, এটি একক কোট ব্যবহার সেরা: gawk -F '\ t' ...।

অন্যান্য কমান্ড দেখুন : wait , lp , complete , execv , getfacl , ioctl , uniq , rmmod , pvcreate , rsh , unix2dos , cal , fs , cd , iwpriv , swapon , autofs , আলাপ , motd , free , lpr , execl , fdisk , at , কে , iwconfig , ifconfig , vgdisplay , open , lsmod , ntohs , mailq , kill , wtmp