- অজ ও সিডের মধ্যে পার্থক্য কী?
- কোন ধরণের অ্যাপ্লিকেশন সেড এবং অ্যাজকি সরঞ্জামগুলির জন্য সর্বোত্তম ব্যবহারের ক্ষেত্রে?
উত্তর:
sed
একটি স্ট্রিম সম্পাদক is এটি প্রতি লাইনের ভিত্তিতে অক্ষরের স্ট্রিমের সাথে কাজ করে। এটিতে আদিম প্রোগ্রামিং ভাষা রয়েছে যাতে গোটো-স্টাইলের লুপগুলি এবং সাধারণ শর্তাদি (প্যাটার্ন ম্যাচিং এবং অ্যাড্রেস ম্যাচিংয়ের পাশাপাশি) অন্তর্ভুক্ত রয়েছে। মূলত দুটি মাত্র "ভেরিয়েবল" রয়েছে: প্যাটার্ন স্পেস এবং হোল্ড স্পেস। স্ক্রিপ্টগুলির পঠনযোগ্যতা কঠিন হতে পারে। গাণিতিক ক্রিয়াকলাপগুলি দুর্দান্তভাবে অদ্ভুত।
sed
কমান্ড লাইন বিকল্প এবং ভাষা বৈশিষ্ট্যগুলির জন্য বিভিন্ন স্তরের সমর্থন সহ বিভিন্ন সংস্করণ রয়েছে।
awk
প্রতি লাইন ভিত্তিতে সীমানাঙ্কিত ক্ষেত্রগুলির দিকে লক্ষ্য করা যায়। এটা অনেক আরো জোরালো সহ প্রোগ্রামিং নির্মান হয়েছে if
/ else
, while
, do
/ while
এবং for
(গ-শৈলী এবং অ্যারে পুনরাবৃত্তির)। ভেরিয়েবল এবং একক-মাত্রিক এসোসিয়েটিভ অ্যারে প্লাস (আইএমও) কুলডজে মাল্টি-ডাইমেনশন অ্যারেগুলির জন্য সম্পূর্ণ সমর্থন রয়েছে। গাণিতিক ক্রিয়াকলাপগুলি সি এর সাথে সাদৃশ্যপূর্ণ এটির printf
কার্যকারিতা রয়েছে। " এডাব্লুকে" তে " কে " এর অর্থ " কে প্রোগ্রামিং ল্যাঙ্গুয়েজ" খ্যাতি ( এ হো এবং ডাব্লু আইবারবার্গকে ভুলে যাওয়ার নয় ) বইয়ের "কর্নিঘান এবং রিচি" তেমন " কে এরনিখন" for কেউ ব্যবহার করে একাডেমিক চুরির ডিটেক্টর লিখতে পারেন awk
।
GNU awk
( gawk
) এর সর্বশেষ সংস্করণে সত্য বহুমাত্রিক অ্যারে সহ অসংখ্য এক্সটেনশন রয়েছে। এবং awk
সহ অন্যান্য বিভিন্নতা রয়েছে ।mawk
nawk
উভয় প্রোগ্রামই পাঠ্য নির্বাচন এবং প্রক্রিয়াকরণের জন্য নিয়মিত অভিব্যক্তি ব্যবহার করে।
আমি sed
যেখানে পাঠ্যের নিদর্শন রয়েছে সেখানে ব্যবহার করতে চাই। উদাহরণস্বরূপ, আপনি কিছু পাঠকের সমস্ত নেতিবাচক সংখ্যা প্রতিস্থাপন করতে পারেন যা "বিয়োগ চিহ্ন-এর পরে অঙ্কগুলির ক্রম" পরে (যেমন "-231.45") "অ্যাকাউন্টেন্টের বন্ধনী" ফর্মের সাথে (যেমন "(231.45)" ) এটি ব্যবহার করে (যার উন্নতির জায়গা রয়েছে):
sed 's/-\([0-9.]\+\)/(\1)/g' inputfile
আমি awk
যখন পাঠ্যটি সারি এবং কলামগুলির মতো দেখায় বা awk
তাদের "রেকর্ড" এবং "ক্ষেত্রগুলি" বোঝায় তখন আমি ব্যবহার করব । যদি আমি উপরের মতো একই ক্রিয়াকলাপটি করতে যাচ্ছিলাম তবে কেবলমাত্র একটি সাধারণ কমা বিস্মৃত ফাইলে তৃতীয় ক্ষেত্রে আমি এর মতো কিছু করতে পারি:
awk -F, 'BEGIN {OFS = ","} {gsub("-([0-9.]+)", "(" substr($3, 2) ")", $3); print}' inputfile
অবশ্যই সেগুলি কেবল খুব সহজ উদাহরণ যা প্রতিটি প্রদান করতে সক্ষমতার সম্পূর্ণ পরিসীমা চিত্রিত করে না।
1) অজক এবং সেডের মধ্যে পার্থক্য কী?
উভয়ই এমন সরঞ্জাম যা পাঠ্যকে রূপান্তরিত করে। কিন্তু খালি খালি পাঠ্যকে ম্যানিপুলেট করার পাশাপাশি আরও কিছু করতে পারে। এটি প্রোগ্রামিংয়ের শিখার বেশিরভাগ জিনিসগুলির সাথে নিজেই নিজেই প্রোগ্রামিংয়ের ভাষা, যেমন অ্যারে, লুপগুলি / যদি অন্য কোনও প্রবাহ নিয়ন্ত্রণ ইত্যাদি আপনি সেডে "প্রোগ্রাম" করতে পারেন তবে আপনি এতে লিখিত কোড বজায় রাখতে চাইবেন না ।
2) কোন ধরণের অ্যাপ্লিকেশনটি সেড এবং অ্যাজকে সরঞ্জামগুলির জন্য সর্বোত্তম ব্যবহারের ক্ষেত্রে?
উপসংহার: খুব সাধারণ পাঠ্য পার্সিংয়ের জন্য সেড ব্যবহার করুন। এর বাইরে যে কোনও কিছুই করা, অজানা ভাল। প্রকৃতপক্ষে, আপনি পুরোপুরি শেড খাঁজতে পারেন এবং কেবল বিশ্রী ব্যবহার করতে পারেন। যেহেতু তাদের ফাংশনগুলি ওভারল্যাপ এবং অ্যাডক আরও বেশি কিছু করতে পারে, তাই কেবল জঞ্জাল ব্যবহার করুন। আপনি আপনার শেখার বক্ররেখাও হ্রাস করবেন।
sed
, সিনট্যাক্সের 's/search/replace'
চেয়ে টাইপ করা সহজ awk
এবং আপনার বেশিরভাগ সময় প্রয়োজন।
উভয় সরঞ্জামই পাঠ্য নিয়ে কাজ করার জন্য বোঝানো হয় এবং এমন দুটি কার্য রয়েছে যা উভয় সরঞ্জামই ব্যবহার করতে পারে।
আমার জন্য এগুলি পৃথক করার নিয়মটি হ'ল: sed
কোনও টেক্সট সম্পাদকে ম্যানুয়ালি আপনি যে কাজগুলি করতে পারবেন তা স্বয়ংক্রিয় করতে ব্যবহার করুন । এজন্য এটিকে স্ট্রিম এডিটর বলা হয় । (আপনি ভিএম-তে পাঠ্য সম্পাদনা করতে একই কমান্ড ব্যবহার করতে পারেন)। awk
আপনি যদি পাঠ্য বিশ্লেষণ করতে চান, অর্থ ক্ষেত্রগুলি গণনা করতে চান, মোট গণনা করুন, কাঠামোগুলি বের করুন এবং পুনর্গঠিত করুন ইত্যাদি ব্যবহার করুন Use
এছাড়াও আপনি সম্পর্কে ভুলবেন না করা উচিত grep
। grep
আপনি যদি কেবল কোনও পাঠ্যে (ফাইল) কিছু সন্ধান / এক্সট্রাক্ট করতে চান তবে ব্যবহার করুন