কোনও ফাইলের নামের পরিবর্তে একটি (বৃহত্তর) স্ট্রিংটি 'গ্রেপ' এ পাস করুন


26

একটি তুলনামূলকভাবে বড় স্ট্রিং পাস করা সম্ভব grepবা এটি কেবল কোনও ফাইল গ্রহণ করতে পারে?

নোট করুন আমি গ্রেপ থেকে পাইপিং আউটপুট নিয়ে কথা বলছি না, তবে এর মতো কিছু করছি:

grep 'hello' 'hello world'

(যা অবশ্যই কাজ করে না, অন্তত এমনটি নয়)


কোন ধরণের টেক্সট ডেটা পাইপ করতে পারে grep? সুতরাং সম্ভবত এর মতো কিছু printf "various\ntext to grep here" | grep "text""টেক্সট থেকে গ্রেপ টেক্সট" তৈরি করবে
অ্যালেক্স

উত্তর:


31

এটা সম্ভব. এটা চেষ্টা কর:

grep 'hello' <<< 'hello world'

আপনি পরিবর্তে স্ট্রিং ধারণকারী একটি ভেরিয়েবল পাস করতে পারেন:

str='hello world'
grep 'hello' <<< $str

5
রেফারেন্সের জন্য, এটি এখানে স্ট্রিং । আপনি এখানে আরও পড়তে পারেন ।
রকাল্লাইট

1
: উইকি থেকে উদ্ধৃত পাওয়া ব্যাশ , ksh , অথবা zsh
hoijui

13

grepপাঠ্যটি অনুসন্ধান করার জন্য এর কমান্ড-লাইন আর্গুমেন্টের ব্যাখ্যা করার কোনও বিকল্প নেই। grepস্ট্রিংয়ের স্বাভাবিক উপায় হ'ল grepস্ট্যান্ডার্ড স্ট্যান্ডার্ড ইনপুটটিতে স্ট্রিংটি পাইপ করা :

$ echo 'There once was a man from Nantucket
Who kept all his cash in a bucket.
    But his daughter, named Nan,
    Ran away with a man
And as for the bucket, Nantucket.' | grep -i nan
There once was a man from Nantucket
    But his daughter, named Nan,
And as for the bucket, Nantucket.
$

আপনি যেমন এখানে দেখছেন, আপনি echoএকাধিক পাঠ্যের পাঠ্যযুক্ত স্ট্রিং করতে পারেন । আপনি যদি পছন্দ করেন তবে এগুলি শেলটিতে ইন্টারেক্টিভভাবে টাইপ করতে পারেন।

এটি যদি আপনার চাহিদা মেটাতে না পারে তবে সম্ভবত আপনি ব্যাখ্যা করতে পারেন কেন পাইপিং গ্রহণযোগ্য সমাধান নয়?


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