পার্ল, পাইথন, এডাব্লুকে এবং সেডের মধ্যে পার্থক্য কী? [বন্ধ]


253

শুধু তাদের মধ্যে প্রধান পার্থক্য কি জানতে চান? এবং প্রতিটি ভাষার শক্তি (এটি ব্যবহার করা আরও ভাল)।

সম্পাদনা: এটি "বনাম" নয় বিষয় যেমন ঠিক তথ্য।


142
এই ধরণের তথাকথিত অ-গঠনমূলক প্রশ্নগুলি সত্যই সহায়ক।
বাষ্প

10
অবশ্যই, তাদের প্রথম পৃষ্ঠার একটি ট্যাবটি সহজেই কার্যকর হবে ...

কমান্ড লাইনে অজগরটির উপযোগিতার জন্য, পাইপটি দেখুন
নিল ম্যাকগুইগান

উত্তর:


550

চেহারা জন্য, ভাষা sed, awk, perl, python

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

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

পার্লকে একটি অংশীদারী-খুনি এবং সেড-কিলার হিসাবে লেখা হয়েছিল। এটা করা হয় সাথে উপলব্ধ করা প্রোগ্রামের দুই a2pএবং s2pরূপান্তরের জন্য awkস্ক্রিপ্ট এবং sedপার্ল মধ্যে স্ক্রিপ্ট। পার্ল হ'ল স্ক্রিপ্টিং ভাষার পরবর্তী প্রজন্মের প্রথম দিকের মধ্যে একটি (টিসিএল / টাকা সম্ভবত প্রাথমিকতার দাবি করতে পারে)। এটি একটি আরও বেশি শক্তিশালী ভাষার সাথে পরিচালনা করে শক্তিশালী সংহত নিয়মিত অভিব্যক্তি রয়েছে expression এটি প্রায় সমস্ত সিস্টেম কলগুলিতে অ্যাক্সেস সরবরাহ করে এবং এতে সিপিএএন মডিউলগুলির এক্সটেনসিবিলিটি রয়েছে। ( উভয়ই নয় awkবা sedএক্সটেনসিবলও নয় ) পার্লের 'অবজেক্টস' রয়েছে তবে ভাষার মৌলিক অংশের চেয়ে এটি অ্যাড-অন বেশি of

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

ঠিক আছে - কখন ব্যবহার করবেন?

  • সেড - যখন আপনাকে ফাইলে সরল পাঠ্য রূপান্তর করতে হবে।
  • অজানা - যখন আপনার কেবল সাধারণ ফর্ম্যাটিং এবং সংক্ষিপ্তকরণ বা ডেটা পরিবর্তনের দরকার হয়।
  • পার্ল - প্রায় কোনও কাজের জন্য, তবে বিশেষত যখন কাজটির জন্য নিয়মিত প্রকাশের প্রয়োজন হয়।
  • পাইথন - একই কাজের জন্য আপনি পার্ল ব্যবহার করতে পারেন।

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

(দ্রষ্টব্য যে বিশেষত পার্ল এবং পাইথনের 'ওভারভিউ'গুলি ভয়াবহভাবে অসম্পূর্ণ; পুরো বই এই বিষয়টিতে লেখা যেতে পারে))


82
একটি ++++ পোস্ট, আবার পড়তে হবে!
রবার্ট গাম্বল

24
দুর্দান্ত "বিশেষত" প্রতিটি অংশ কখন ব্যবহার করতে হবে "
খালেদ আল হুরানী

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

7
মূল উদ্দেশ্য যাই হোক না কেন, এটি স্পষ্ট যে পরকালের পাইথন বিকাশ এবং পাইথন সম্প্রদায় পার্লের আরও নমনীয় তবে ক্ষুদ্র বাক্য গঠনের চেয়ে পঠনযোগ্যতা এবং ধারাবাহিকতা পছন্দ করেছে। দুর্দান্ত পোস্ট জোনাথন
মার্টিন বেকেট

4
@blasto: সংক্ষিপ্তসার ETL জন্য, আমি অগ্রাধিকার চাই awkওভার sedশেখার জন্যে (যদিও উভয় এখনও তাদের ব্যবহারসমূহ থাকে)। কাজের আকার হিসাবে: sedএটি একবারে এক লাইন প্রক্রিয়াকরণে লাইন থেকে লাইনে কোনও স্টোরেজ না রেখেই সবচেয়ে কার্যকর। awkসমস্ত উত্স থেকে সংগৃহীত ডেটা সহ প্রায়শই সহযোগী অ্যারে তৈরি করতে ব্যবহৃত হয়; এটি আরও মেমরি ব্যবহার করে এবং তাই এর চেয়ে বড় ডেটা সেটগুলির সাথে সমস্যা দেখা দেওয়ার সম্ভাবনা অনেক বেশি sedtsawkআপনি এর সাথে লিঙ্ক করার আগে আমি শুনিনি । আমি যখন পার্সেলের পিছনে পড়ে যাই (তবে পাইথনের সাথে আপনি আরও ভাল করতে পারেন) যখন কোনও কাজ খুব বেশি হয় awk
জোনাথন লেফলার

91

কয়েক ডজন ভাষায় দক্ষতার পরে, আপনি এস লটের মতো লোকদের ক্লান্ত হয়ে পড়েন (উত্তর দেওয়ার ছয় বছর পরে প্রায় অর্ধেকের বেশি ডাউন-ভোট (+ 45 / -22) প্রায় এই প্রশ্নটির তার বিতর্কিত উত্তর দেখুন)।

শেড অত্যন্ত সাধারণ কমান্ড-লাইন পাইপলাইনের জন্য সেরা সরঞ্জাম। একটি সেড মাস্টারের হাতে, এটি স্বেচ্ছাসেবী জটিলতার এক-অফের জন্য উপযুক্ত, তবে এটি খুব সহজ বিকল্প প্রতিস্থাপন পাইপলাইন বাদে উত্পাদন কোডে ব্যবহার করা উচিত নয়। স্টাফ 'এর / এই / এটি /' এর মতো।

কেবলমাত্র একটি ইনপুট উত্স এবং একক আউটপুট (বা একাধিক আউটপুট ক্রমানুসারে লিখিত থাকে) থাকে তখন গাওক (জিএনইউ অ্যাওক) জটিল তথ্য পুনর্নির্মাণের জন্য সর্বোত্তম পছন্দ। যেহেতু রিয়েল-ওয়ার্ল্ডের কাজগুলি এই বিবরণটির সাথে সামঞ্জস্য করে এবং একটি ভাল প্রোগ্রামার দুই ঘন্টার মধ্যে গোক শিখতে পারে, এটি সেরা পছন্দ। এই গ্রহে, সহজ এবং দ্রুত আরও ভাল!

আপনার যখন খুব জটিল ইনপুট / আউটপুট দৃশ্যাবলী থাকে তখন পার্ল বা পাইথন অ্যাডাব্ল্যাড বা সিডের যে কোনও সংস্করণের তুলনায় অনেক ভাল। সমস্যাটি যত জটিল, ততক্ষণ আপনি রক্ষণাবেক্ষণ এবং পাঠযোগ্যতার দিক থেকে অজগরটি ব্যবহার করছেন। দ্রষ্টব্য, তবে কোনও ভাল প্রোগ্রামার যে কোনও ভাষায় পঠনযোগ্য কোড লিখতে পারে এবং কোনও খারাপ প্রোগ্রামার যে কোনও কার্যকর ভাষায় অবিশ্বাস্য ক্রেপ লিখতে পারে, তাই প্রোগ্রামার যদি বলা হয় তবে পার্ল বা পাইথনের পছন্দটি প্রোগ্রামারের পছন্দগুলিতে নিরাপদে রেখে যেতে পারে can দক্ষ এবং চতুর


9
100% সম্মত। সর্বাধিক জানা, যদি সমস্ত সরঞ্জাম না হয় এবং প্রতিটি কখন ব্যবহার করা হয় তা হ'ল কোনও ভাল প্রযুক্তিবিদকে একটি মাঝারি মানের থেকে আলাদা করে।
আতা

6
আমি যুক্ত করব যে অ্যাজকের পরিবর্তে পাইথন বা পার্ল বেছে নেওয়ার আর একটি কারণ হ'ল যখন আপনার রূপান্তরকরণের প্রয়োজনীয়তাগুলিতে জটিল বৈধতা বা যুক্তি জড়িত যার জন্য অন্য ভাষার একটি বিদ্যমান, শক্তিশালী মডিউল রয়েছে। সঠিকভাবে হ্যান্ডেল করার জন্য এটি কী নেবে তা ভেবে দেখুন যেমন ই-মেইল বা রাস্তার ঠিকানাগুলি বিশ্রীভাবে এবং আপনি কী বোঝাতে চাইছেন: পার্ল এবং পাইথনের লাইব্রেরি রয়েছে যা এই তুচ্ছ জিনিসগুলিকে তৈরি করে, অবাস্তব এগুলি অস্বাভাবিক বা অনুপলব্ধ।
sorpigal

3
আসলে পার্ল শেড এবং আওক উভয়কেই পরিবেষ্টনের জন্য নকশাকৃত করা হয়েছিল; আমি সেড বা আউক শিখার চেয়ে পার্লে কেবল এটি লেখা সহজ মনে করি।
ব্র্যাড গিলবার্ট

@ ব্র্যাডগিলবার্ট: যেমন আমি উপরে শীর্ষ উত্তরে উল্লেখ করেছি, পার্ল (এবং পাইথন, রুবি, ইত্যাদি) -এর অবতারণাটি হ'ল পূর্বের ধরণের এক ধরণের রেজিএক্সপাকে রিসা এক্সএইসি ধীরে ধীরে: swtch.com/~rsc/regexp/regexp1.html
অলিভিয়ার ডুলাক

1
@ অলিভারডুলাক হ্যাঁ এটি কোনও প্যাথলজিক কেস দেখায়। আপনি যদি বদলে a?ⁿaⁿযান a??ⁿaⁿতবে পার্ল 5 এ এটি 1,000,000 এর একটি দিয়ে চালান এটি দুই সেকেন্ডেরও কম সময়ে চলে। time perl -E '$x=1_000_000;$_="a"x$x;$m=("a??"x$x).("a"x$x);say $_=~$m'আপনি যদি নির্দোষকে চালান তবে মাত্র 25 টির জন্য এটি দুটি সেকেন্ডের বেশি সময় নেয় you আপনি যে জিনিসটি অনুধাবন করতে পারবেন তা হ'ল পার্লের রেজিজের অভ্যন্তরে পার্ল কোড রাখার অনুমতি সহ আরও দ্রুত রেগেক্স বৈশিষ্ট্য রয়েছে যা এটি মিলে যায় তার পরিবর্তনে ters । আপনি চান এমন একটি মডিউল প্রয়োগ করতে পারেন যা অন্যদের মধ্যে একটির জন্য অন্তর্নির্মিত অদলবদল করে।
ব্র্যাড গিলবার্ট

21

আমি সেডকে একটি পূর্ণাঙ্গ প্রোগ্রামিং ল্যাঙ্গুয়েজ বলব না, এটি ভাষা স্ট্রিম এডিটর যা প্রোগ্রামিংয়ে টেক্সট ফাইলগুলি সম্পাদনা করার লক্ষ্য নিয়ে তৈরি করা হয়েছে।

ওউক হ'ল সাধারণ উদ্দেশ্য ভাষা কিছুটা হলেও এটি পাঠ্য প্রক্রিয়াকরণের জন্য এখনও সেরা suited

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


2
আমি সোকোবনের একটি বাস্তবায়ন দেখেছি, যা টুরিং সম্পূর্ণতার ইঙ্গিত দেয়। তবে এটি সেন্ডমেইল.সিএফ এবং টেক্স সম্পর্কেও বলা যেতে পারে।
কনসার্নড

7
আমি একবার একজন লোকের সাথে কাজ করেছি যিনি একটি লেজার প্রিন্টারকে রাউটারে পরিণত করতে পোস্টস্ক্রিপ্ট লিখেছিলেন।
স্যাম কিংটন

10
@ সাম: বাহ! আমি জানতাম না যে কোনও প্রিন্টারের লেজারটি কাঠ কাটাতে যথেষ্ট ক্র্যাঙ্ক করা যেতে পারে! ওহ, দুঃখিত, ভুল ধরনের রাউটার
পরবর্তী বিজ্ঞপ্তি না হওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

2
সেড, একটি পূর্ণাঙ্গ ভাষা নয়? ঠিক আছে, এটি সম্পূর্ণ সত্য নয়, কারণ সেড সম্পূর্ণরূপে টুরিং করছে ;)
বার্নার্ড পলুস

1
আমি আজকের ভাষাতে একটি বাস্তবায়ন দেখেছি। (যেহেতু অ্যাডকে তার নিজের অধিকার দ্বারা পার্সার হিসাবে বিবেচনা করা যেতে পারে, সুতরাং এটিতে কোনও অনুবাদককে প্রয়োগ করা সহজবোধ্য)।
তাতজানা হিউসার

19

প্রথমত, "পার্ল, পাইথন অ্যাজক এবং সেড" তালিকায় দুটি অপ্রাসঙ্গিক জিনিস রয়েছে।

জিনিস 1 - সরল পাঠ্য ম্যানিপুলেশন সরঞ্জাম।

  • sed। এটিতে একটি ফাইলের প্রতিটি লাইন পড়ার এবং পরীক্ষা করার ধারণা দ্বারা সংজ্ঞায়িত, অপেক্ষাকৃত সহজ স্কোপ রয়েছে। সেড বিশেষভাবে পাঠযোগ্য হিসাবে নকশাকৃত নয়। এটি খুব ক্ষুদ্র এবং খুব ক্ষুদ্র ইউনিক্স সার্ভারে খুব দক্ষ হতে ডিজাইন করা হয়েছে।

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

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

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

  • পার্ল।

  • পাইথন।

এগুলি কখন ব্যবহার করবেন।

  • sed। কখনও। 32K এরও বেশি মেমরির কম্পিউটারগুলির আধুনিক যুগে এটির আসলেই কোনও মূল্য নেই। পার্ল বা পাইথন একই জিনিস আরও স্পষ্টভাবে করে।

  • awk। কখনও। সেডের মতো এটি গণনার আগের যুগের প্রতিফলন ঘটায়। এই ভাষাটি বজায় রাখার পরিবর্তে (একটি সফল সিস্টেমের জন্য প্রয়োজনীয় সমস্ত অন্যান্য ছাড়াও) কেবল একটি মনোরম ভাষায় সবকিছু করা আরও সুখকর।

  • পার্ল। যে কোন প্রোগ্রামিং সমস্যা। আপনি যদি মুক্ত চিন্তা-ভাবনা সিনট্যাক্স পছন্দ করেন, যেখানে একই জিনিসটি করার অনেকগুলি উপায় রয়েছে, পার্লটি মজাদার।

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

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

সেড এবং অ্যাজকের সাথে দুটি গুরুতর সমস্যা রয়েছে যার মধ্যে দুটিই তাদের বয়স নয়।

  1. তাদের বাস্তবায়নের অসম্পূর্ণতা। সিড এবং অযৌক্তিক কাজগুলি পাইথন বা পার্লে করা যেতে পারে, প্রায়শই আরও সাধারণ এবং কখনও কখনও দ্রুতও। শেল পাইপলাইনের মাল্টি-প্রসেসিংয়ের কারণে কিছু কার্যকারিতা সুবিধা রয়েছে। পাইথন subprocessআমাকে সেই সুবিধাগুলি পুনরুদ্ধার করার জন্য মডিউল সরবরাহ করে offers

  2. আরেকটি ভাষা শেখার দরকার। পাইথন (বা পার্ল) এ জিনিসগুলি করার মাধ্যমে আপনার বাস্তবায়ন কম ভাষার উপর নির্ভর করে যার ফলস্বরূপ স্পষ্টতা বৃদ্ধি।


66
অ্যাডাব্লু / এসডের বিরুদ্ধে কিছু চমত্কার কড়া যুক্তি। সামঞ্জস্যযোগ্য রেঞ্চ একই কারণে সেড এবং অ্যাজক এখনও শিপিংয়ের জন্য খোলা স্প্যানারকে পরিবেশন করতে পারেনি। কখনও কখনও সহজ সরঞ্জাম কাজের জন্য সেরা। আমি প্রচুর পার্ল লিখি, তবে পাইপযুক্ত কমান্ডগুলির একটি সহজ শৃঙ্খলার জন্য, ডাব্লু / এসইডি পার্ল-ই থেকে দ্রুততর হয়
RET

27
আপনি বেশিরভাগ নন-লিনাক্স ইউনিক্স সিস্টেমে sh, sed এবং awk ব্যতীত অন্য কোনও কিছুর প্রাপ্যতা ধরে নিতে পারবেন না। আপনি যদি বাক্সের বাইরে সোলারিস, এইচপি / ইউএক্স বা এআইএক্স ইনস্টল করে কাজ করতে চান তবে আপনি সেড এবং অ্যাজকের সাথে আটকে আছেন।
কনসার্নড

27
আমার শেল স্ক্রিপ্টগুলির অর্ধেকটি সেড বা অ্যাজক ব্যবহার করে। তারা মৃত থেকে অনেক দূরে। পাইথন হ'ল আমার পছন্দের স্ক্রিপ্টিং ভাষা, তবে কখনও কখনও সেড এবং অ্যাজক কাজের জন্য সেরা সরঞ্জাম। তারা বেশ কয়েক বছর ধরে ব্যবহৃত হয়ে আসার অর্থ এই নয় যে তারা অচল।
জেরেমি ক্যান্ট্রেল

16
@ এস.লোট: আমি প্রস্তাব দিচ্ছি না যে কারও কাছে অজস্রভাবে একটি ওয়েব-অ্যাপ তৈরির চেষ্টা করা উচিত, তবে তাদের কখনই ব্যবহার করা উচিত নয় তা বলা কিছুটা বিরক্তিজনক। একটি সাধারণ এস & আর এবং / বা টুইগের জন্য (বিশেষত একটি সীমিত পাঠ্য ফাইলের কাছে), পার্ল-সি বা পাইথন-সি কখনও সেড / অ্যাজক ওয়ান-লাইনারের মতো দক্ষ হতে পারে না।
RET

25
আমি এই মত উত্তর পছন্দ করি না। শেড এবং অ্যাজক কয়েক ঘন্টার মধ্যে বোঝা সহজ এবং একটি পূর্ণাঙ্গ ভাষার চেয়ে অনেক বেশি লাইটওয়েট এবং ব্যাপকভাবে উপলব্ধ। শেল প্রোগ্রামিংটি যথারীতি প্রাসঙ্গিক বলে, "কখনও নয়" এটি ব্যবহার করুন বা এই সরঞ্জামটি সহজভাবে প্রতিবন্ধক করা হয়েছে। তবে, এই প্রতিবন্ধী ধারণাটি কি সেই ভিত্তির মধ্যে একটি ছিল না যার ভিত্তিতে পার্লের উত্থান হয়েছিল? ওহ ভাল
আতা

14

এগুলি কখন ব্যবহার করবেন: awk - never - এস লট।

আমি মনে করি এস লট এই সুপারিশটি দিয়ে চিহ্নটি কিছুটা মিস করেছেন। বাস্তবতা হল লিনাক্স এবং অন্যান্য ইউনিক্স এনভায়রনমেন্টগুলিতে, দ্রুত পাঠ্য প্রসেসিংয়ের জন্য ব্যাশ, শ, এবং কেএসএস ব্যবহার করার জন্য অ্যাড্ক একটি দরকারী সরঞ্জাম। নিজেই স্ক্রিপ্ট করার ধারণাটি হল আপনি এই সরঞ্জামটি, সেই সরঞ্জামটিকে একসাথে আটকিয়ে আপনার সমস্যার সমাধান করবেন। সুতরাং অ্যাডমিন স্ক্রিপ্টগুলিতে, এলএস, গ্রেপ, |, অবাক, টাইম, পিএস ইত্যাদি পাওয়া সাধারণ বিষয় Each প্রতিটিই একটি সরঞ্জাম যা স্ক্রিপ্টর একটি বিল্ডার ইটের মতো একত্রে বিল্ডিং শেষ করার জন্য (হাতের সমস্যাটি সমাধান করার জন্য) ইট দিয়ে সংযুক্ত করে is ।

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


7
এটি এস.লোটই ছিলেন যে আপনি যে প্রতিক্রিয়াটি উদ্ধৃত করেছেন তা লিখেছেন, ব্রায়ান ডি
ফয়েস

5
এই মোটামুটি পুরানো উত্তরের পার্শ্ব নোট হিসাবে: এর আউটপুট কখনই পার্স করবেন না ls, পরিবর্তে গ্লোব ব্যবহার করুন। এটি পড়ুন।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.