উত্তর:
alias cgrep='grep -nR --color'
ব্যবহার:
$ cgrep somestring /path/to/dir/or/file/with*/possible/*wild.card
এছাড়াও আমার প্রিয় একটি:
$ pgrep some-hanging-process
প্রক্রিয়াগুলির সমস্ত পিডগুলি তালিকাবদ্ধ করবে যা কিছু ঝুলন্ত-প্রক্রিয়ার নামের সাথে মেলে যা আপনি নিম্নলিখিত পরিস্থিতিতে ব্যবহার করতে পারেন:
$ kill $(pgrep some-hanging-process)
grep
, grep -r
সাধারণত grep -R
পূর্বের প্রতিযোগিতাগুলি অতিক্রম না করাকে পছন্দ করা উচিত ।
আমি দেখেছি যে,, grep কুটনি করার সেরা উপায় ব্যবহার করা ACK , যা একটি বুদ্ধিমান বাতিলের তালিকায় সঙ্গে মূলত রিকার্সিভ, grep হয়, রঙ ফলাফল হাইলাইট এবং (যেমন, ডিরেক্টরি .svn অনুসন্ধান নয়, ব্যাকআপ ফাইল, ইত্যাদি উপেক্ষা করে) পার্ল regexps। আপনি গ্রেপ সময়ের 98.6% কাজটি করতে চান এটি এটি।
আমি এটিকে আমার .bashrc এ সেট করে রেখেছি, একটি উপনাম ব্যবহার করে গ্রেপকে নতুন করে সংজ্ঞায়িত করার পরিবর্তে:
export GREP_OPTIONS="--color=auto"
আমার জন্য, এটি লিনাক্স, ম্যাকসএক্সএক্স এবং ফ্রিবিএসডি-তে কাজ করে।
GREP_OPTIONS
ক্ষতিকারক বিবেচনা করা উচিত। আমি alias
পরিবর্তে ব্যবহার করার পরামর্শ দিচ্ছি । এখানে দেখুন: বাগস.লঞ্চপ্যাড.এন.বুন্টু
আমি পরিবেশের পরিবর্তনশীল GREP_OPTIONS এড়ানো পরামর্শ দিচ্ছি, এটি গ্রেপের প্রতিটি অনুরোধকে প্রভাবিত করবে, এমনকি অন্যান্য সরঞ্জামগুলির মধ্যে এম্বেড থাকা। যদি সেই সরঞ্জামগুলি গ্রিপকে একভাবে আচরণ করার প্রত্যাশা করে এবং আপনি সেই আচরণটি পরিবর্তন করেন তবে এটি সেই সরঞ্জামগুলি ভেঙে ফেলবে does
পরিবর্তে, আপনি একটি উপনাম তৈরি করতে পারেন, যা ভাল কাজ করে। এটি কেবলমাত্র আপনার ইন্টারেক্টিভ শেল থেকে গ্রেপ করার কলগুলিকে প্রভাবিত করবে (যেমন আপনি নিজের টাইপ করেন)।
চূড়ান্ত বিকল্পটি, যা আমি সবচেয়ে বেশি পছন্দ করি তা হ'ল একটি র্যাপার স্ক্রিপ্ট তৈরি করা যা গ্রেপকে অনুরোধ করে। আমি এটি একটি উপনামের চেয়ে বেশি পছন্দ করি কারণ আমি অন্যান্য প্রোগ্রাম থেকে এই মোড়কে ডাকতে পারি। উদাহরণস্বরূপ vimgrep সেট করে ভিমে, যাতে আমার ভিএম এর মধ্যে থেকে অনুসন্ধানগুলি কমান্ড-লাইনের অনুসন্ধানগুলিতে অনুরূপ আচরণ করে।
$ cat `which grp`
#!/usr/bin/env bash
grep -rI --color --exclude-dir=\.bzr --exclude-dir=\.git --exclude-dir=\.hg --exclude-dir=\.svn --exclude-dir=build --exclude-dir=dist --exclude=tags $*
এটি ব্যবহার করে আহ্বান করুন:
$ grp pattern dir
যেমন
$ grp pattern .
বর্তমান দির এবং সাবডিয়ার্সের সমস্ত পাঠ্য ফাইলগুলিতে 'প্যাটার্ন' এর উদাহরণ অনুসন্ধান করবে।
লক্ষ্য করুন যে আমি আমার স্ক্রিপ্টটিকে 'গ্রেপ' ছায়ার চেয়ে 'গ্রিপ' বলি, যাতে আমি নিজের কাস্টমাইজড ডিফল্টগুলি দিয়ে গ্রেপকে ডাকছি কিনা তা আমি সর্বদা সচেতন।
ডিফল্টরূপে আমি অন্তর্ভুক্ত:
-r : search subdirs recursive
-I : skip binary files
--color : highlight matches in color
--exclude-dir : skip specified directories and their subdirs
--exclude : skip specified files
আমি মনে করি সবাই সোর্স কন্ট্রোল ডায়ারগুলি এড়িয়ে যেতে চাইবে: .hg .git .bzr .svn
'বিল্ড' এবং 'ডিস্ট' এড়িয়ে যাওয়া পাইথন-আইএসএস এবং সম্ভবত বেশিরভাগ লোকের ক্ষেত্রে প্রযোজ্য নয়। কোনও সন্দেহ নেই যে আপনি কাজ করার সাথে সাথে আপনার নিজস্ব আইডিয়াসেক্রেসিগুলি বিকাশ করবেন।
'ট্যাগস' ctags এর আউটপুট, যা আমি 'ফাংশন সংজ্ঞাতে যান' এবং ভিএম এর মতো সরঞ্জামগুলিতে ব্যবহার করি। যেমন এটিতে আমার উত্স কোড থেকে প্রতিটি শব্দের কমপক্ষে একটি অনুলিপি এবং চিহ্ন রয়েছে, সুতরাং এটি আপনার অনুসন্ধান ফলাফল থেকে এড়িয়ে চলে worth
"$ *" শেষে "এবং কমান্ড-লাইন থেকে সমস্ত অন্যান্য প্যারাম" এর জন্য বাশ সিনট্যাক্স রয়েছে, যাতে আপনি সাধারণ হিসাবে সন্ধান করতে প্যাটার্নটি পেরিয়ে যেতে পারেন এবং আপনি যে কোনও কমান্ড লাইনের ফ্ল্যাগগুলি ওভাররাইড করতে পারেন ।
--color
বিকল্প ইতিমধ্যে বেশ কয়েকবার উল্লেখ করা হয়েছে, কিন্তু আমি যোগ করতে এটি রঙ যা ম্যাচ একটি পরিবেশ পরিবর্তনশীল ব্যবহার তুলে ধরা হবে কনফিগার করতে সম্ভব চাই
export GREP_COLOR="1;33"
রেফারেন্সের জন্য রঙটি এএনএসআই রঙ কোড ব্যবহার করে এনকোড করা উচিত
Black 0;30 Dark Gray 1;30
Blue 0;34 Light Blue 1;34
Green 0;32 Light Green 1;32
Cyan 0;36 Light Cyan 1;36
Red 0;31 Light Red 1;31
Purple 0;35 Light Purple 1;35
Brown 0;33 Yellow 1;33
Light Gray 0;37 White 1;37
GREP_COLOR
অবচয় করা হয়। GREP_COLORS
পরিবর্তে ব্যবহার করুন।
যেহেতু আমি আসলে রঙ সেট করার কোনও উদাহরণ দেখতে পাইনি, তাই এখানে জিএনইউ গ্রেপের জন্য একটি সহজ সেটআপ রয়েছে:
# turn on colors, natch.
export GREP_OPTIONS="--color=auto"
if [[ $(echotc Co) -ge 256 ]]; then
# 256 color terminals
export GREP_COLORS="mt=38;5;118:sl=:cx=:fn=38;5;18:ln=1;30:bn=37:se=30"
else
# everybody else
export GREP_COLORS="mt=31:sl=:cx=:fn=34:ln=1;30:bn=30:se=30"
fi
সম্পর্কে সাবধান GREP_OPTIONS
; এটির মতো জিনিস ব্যতীত অন্য কোনও কিছুর জন্য ব্যবহার করবেন না --color=auto
বা এটি আপনার সিস্টেমে গ্রেপ ব্যবহার করা কোনও স্ক্রিপ্টগুলিকে বিশৃঙ্খলা করবে।