ক্যাটাগ ফাইল ফাইল এবং গ্রেপ থেকে পাইপিংয়ের সুবিধা


19

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

সুতরাং নিম্নলিখিত কনভেনশনের অন্যান্য কী কী সুবিধা থাকতে পারে:

cat /var/tmp/trace.2043925204.xt | grep -in profile
cat /var/tmp/trace.2043925204.xt | grep -n Profile-Main

পরিবর্তে:

grep -in profile /var/tmp/trace.2043925204.xt 
grep -n Profile-Main /var/tmp/trace.2043925204.xt 

উত্তর:


21

বিড়াল এড়ানো ভাল; লাইন সম্পাদনা যদি গুরুত্বপূর্ণ হয় তবে এটিকে লিখুন:

$ < filename grep pattern

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


9

আমি বিশ্বাস করতে পারি না কেউ এখনও "বিড়ালের অপব্যবহারের ব্যবহার" উল্লেখ করেছেন না http://www.smallo.ruhr.de/award.html

একটি সন্দেহজনক সুবিধা আছে। আপনার যদি দীর্ঘ পাইপলাইন থাকে তবে এটি বিড়ালের সাথে কিছুটা অরথোগোনাল দেখায়:

cat file | command1 | command 2 | command3

এটি সমস্ত কমান্ড একসাথে ক্লাস্টার করে।

অবশ্যই অন্যরা যেমন বলেছে (এবং আমিও করি)

< file command1 | command2 | command3

প্রায় একই জিনিস সম্পাদন করে। এটি বলেছিল, বিড়ালটি খুব ছোট এবং আপনার কম্পিউটারের সত্যিকারের প্রয়োজন নেই যখন আপনি এটি ব্যবহার করেন তবে আপনার কম্পিউটারটি নামিয়ে আনবে না।

সাধারণত catবনাম সরাসরি কোনও ফাইলকে আঘাত করা ব্যবহার করে কোনও পরিবর্তন হয় না, তবে এটি নির্দিষ্ট কমান্ডগুলির জন্য একটি তাত্পর্য তৈরি করে যেগুলি যদি যুক্তি হিসাবে একাধিক ফাইল থাকে তবে তা যত্নশীল grep। বিন্দু ক্ষেত্রে:

cat file1 file2 | grep SOMETHING

এর চেয়ে আলাদা আউটপুট থাকবে

grep SOMETHING file1 file2

যার আউটপুটে ম্যাচিং ফাইলের নাম থাকবে। বার ফাইলের নামের চাই না আছে, এবং এটি একটি সুবিধা ব্যবহার করছে cat


1
catপড়ার চেয়ে অনেক পরিষ্কার <। অথবা কেবলমাত্র আমাদের জন্য ফোজি যারা মনে করেন যে ইউনিক্স এবং ব্যাশ ভিএমএস এবং ডিসিএল থেকে প্রচুর হেক শিখতে পারে।
রন জন

8

কোনও লাভ নেই। আপনি যদি এর পরিবর্তে এটির কাঠামো তৈরি করেন তবে আপনার কার্সারটি শেষের দিকেও বেশি গুরুত্বপূর্ণ নয়:< inputfile grep -args foo


6

আপনার কেবল এই পরিস্থিতিতে বিড়ালটি ব্যবহার করার দরকার নেই। এটি অপ্রয়োজনীয় এবং সময় নষ্ট করা কারণ গ্রিপের মতো সরঞ্জামগুলি ফাইলের নামকে আর্গুমেন্ট হিসাবে গ্রহণ করে।

[root@un1xf00 root]# time cat passwd | grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

real    0m0.021s
user    0m0.000s
sys     0m0.030s
[root@un1xf00 root]# time grep root passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

real    0m0.002s
user    0m0.000s
sys     0m0.000s
[root@un1xf00 root]#

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


1
@ মিশেল: অবসন্ন হওয়ার জন্য আপনার কাছে A -10। আপনি আরও সহায়ক হতে পারে। খুব খারাপ আপনি এখানে দেখতে পাবেন না কারণ এখানে আপনার অ্যাকাউন্ট নেই।
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

4
মাইকেল বলছেন যে উপরের সময়গুলি ডিস্ক ক্যাশে অ্যাকাউন্ট গ্রহণ করছে না। (এবং জবাবটি ডি-অবটস করার চেয়ে মাইকেলকে ছুঁড়ে মারতে আরও আগ্রহী বলে ডেনিসের কাছে একটি -০.২৯)
অ্যান্ডি লেস্টার

1
আমি মনে করি যদি মন্তব্যগুলি সিগন্যাল করার চেয়ে অবশ্যই শব্দ হয় তবে এটির স্থান ধন্যবাদ @ অ্যান্ডি যেহেতু আমি জানতাম না মাইকেল ডিস্ক ক্যাশে উল্লেখ করছে।
অক্সিজেন

3

সম্পাদনার সহজেই একমাত্র আসল সুবিধা এবং আপনি যদি কমান্ড লাইনে এটি করেন catতবে পাইপটি চালাতে এবং পাইপটি ব্যবহার করতে যে কোনও অতিরিক্ত সময় লাগবে তা আসলে কোনও তাত্পর্য তৈরি করবে না।

যদিও এটি শেল স্ক্রিপ্টে করার কোনও কারণ নেই।


2

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


1

না এবং এটি আপনার দেওয়া উদাহরণের চেয়ে সামান্য ধীর হতে পারে।

একটি pipeবিড়াল এবং গ্রেপের মধ্যে তৈরি করা হয়, যা ফাইলের নাম সরাসরি গ্রেপ-এ যাওয়ার সময় প্রয়োজন হয় না। তবে আমি মনে করি না যে কোনও পরিস্থিতিতে আপনি কখনই এর মাধ্যমে আউটপুট সীমাবদ্ধতা পালন করবেন।

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

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