awk স্ক্রিপ্টের শেষে 1 এর অর্থ কী


উত্তর:


24

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

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


7

আমি এই ধরণের শর্টকাটগুলি সত্যিই অপছন্দ করি কারণ এটি কীভাবে পার্স করা হচ্ছে তা ভ্রষ্ট করে এবং বিভ্রান্ত করে। আপনি যখন এই জাতীয় কিছু পড়েন awk -F"=" '{OFS="=";gsub(",",";",$2)}1', আপনি ভাবতে পারেন যে 1এটি পূর্ববর্তী বিবৃতিটি সংশোধন করছে। অথবা আপনি মনে করতে পারেন যে 1এটি একটি উপনাম {print}, যা প্রযুক্তিগতভাবে সঠিক নয়।

আসলে, 1একটি সম্পূর্ণ পৃথক বিবৃতি। আপনি বিবৃতি পৃথক করতে পারেন:

awk -F"=" '
{OFS="="; gsub(",",";",$2)}
1
'

প্রতিটি awk বিবৃতি ফর্ম্যাট হয় condition {action}। যদি কোনও {action}দেওয়া না হয়, তবে ডিফল্ট ক্রিয়া হয় {print}। (যদি কোনও conditionদেওয়া না হয়, তবে ডিফল্ট শর্তটি true)

সুতরাং এখানে, 1শর্তটি যা সর্বদা মূল্যায়ন করে trueযেহেতু এটি ননজারো। actionবাদ দেওয়া হয়, তাই ডিফল্ট {print}সঞ্চালিত হয়। আপনি এটি এইভাবে ভাবতে পারেন:

awk -F"=" '
{OFS="="; gsub(",",";",$2)}
1!=0 {print}
'

5

1 প্রতিটি লাইন মুদ্রণ মানে।

অ্যাজক স্টেটমেন্টটি লেখার মতোই:

awk -F"=" '{OFS="=";gsub(",",";",$2);print $0;}'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.