রঙিন FIND আউটপুট?


15

তা থেকে রঙ্গিন আউটপুট পাওয়ার সম্ভাবনা আছে খোঁজ কমান্ড? অর্থাত, প্রতিটি পাওয়া আইটেমের পথে ডিরেক্টরিগুলি নীল হয়, সম্পাদনযোগ্য স্ক্রিপ্টগুলি সবুজ হয়, ইত্যাদি? আমি জিএনইউ আবিষ্কারকগুলির 4.4.2 সংস্করণ ব্যবহার করছি ।

সম্পাদনা করুন - স্পষ্ট করার জন্য, প্রতিটি ফলাফল এর মতো হাইলাইট করা হবে:

./path/to/file.sh
  ^    ^  ^
  |    |  L green
   blue

(যদি, উদাহরণস্বরূপ, কার্যকর করা হয় find . -type f)।


আমি একটি বেশিরভাগ সন্ধান-সামঞ্জস্যপূর্ণ প্রতিস্থাপন লিখেছিলাম bfsযার এই কার্যকারিতা রয়েছে: github.com/tavianator/bfs
টাভিয়ান বার্নস

উত্তর:


10

আপডেট: আমি একটি নতুন (ভিন্ন) স্ক্রিপ্ট যুক্ত করেছি ... Ignacio Vazquez-Abrams একটি বক্তব্য ছিল: প্রশ্নটি সত্যই জিজ্ঞাসা করে executable scripts are green, et cetera.. ঠিক আছে ... আপনি এই উত্তরটির শেষে একটি (প্রোটোটাইপ) স্ক্রিপ্ট পাবেন।


এই প্রথম (মূল) বিভাগটি প্রায় grcএবং grcat

এই কাজ করা উচিত; grc... ( এনজোটিব যেমন উল্লেখ করেছে .. প্যাকেজের নামটি grc... উদাহরণটিতে ব্যবহৃত উপ-উপযোগিতাটি হ'ল)grcat

generic colouriser for everything

generic colouriser, can be used to colourise logfiles,
output of commands, arbitrary text....
configured via regexp's.

নিম্নলিখিত উদাহরণ মুদ্রণ

  • ./ ম্যাজেন্টায়
  • bin/cpp/ সায়ান মধ্যে
  • bigint গা bold় সাদা

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

echo "# my config file
regexp=(\./)(.*/)([^/]+)
colours=bold white,magenta,cyan
">$HOME/.grc/findhi

find . -maxdepth 3 -name '*' | grcat findhi

এখানে নতুন Ignacio অনুপ্রেরণিত স্ক্রিপ্ট :)

আপনি যদি প্রথম আর্গ হিসাবে কোনও একক পথ ব্যবহার করেন তবে এটি কাজ করে find
আছে অপরীক্ষিত এই লিপিতে বিষয়। এটা শুধুমাত্র ধারণা।
একটি ইস্যুটি হ'ল: প্রতীকী লিঙ্কগুলি ... নোংরা জলের ...
যেমনটি ERRORএটি কোনও অজানা ধরণের (উদাহরণস্বরূপ একটি প্রতীকী লিঙ্ক) মুখোমুখি হওয়ার পরে একটি মুদ্রণ করে এবং এরপরে অতীত প্রক্রিয়া চালিয়ে যায়। উদাহরণের জন্য
ধন্যবাদ । enzotibtput

dircol=$(tput bold ;tput setaf 4)
coloff=$(tput sgr0)

root="$HOME"       # define path here, not in 'find` arg
root="${root:-.}"  # default to '.'
root="${root%/}/"  # add trailing '/'
#
find "$root" -maxdepth 1 -name '*' -printf "%y %P\n" | 
  while read -r line ;do
    case $line in 
       d   ) printf "%s\n" "$dircol$root$coloff";;  
       d\ *) printf "%s\n" "$dircol$root${line:2}$coloff";;  
       f\ *) l="$root${line:2}"
             d="${l%/*}/"
             f="${l##*/}"
             cd -P "$d" 
             printf "%s" "$dircol$d$coloff"  
             ls --color=always -R1 "$f"
             cd - >/dev/null
             ;; 
          *) printf "ERROR - type not yet catered for\n";;  
    esac
  done 

আপনি প্যাকেজটি grcatথেকে ইউটিলিটিটি উল্লেখ করছেন তা ভুলে গিয়েছিলেন grc:) আপনি কী বলছেন তা বুঝতে শুরুতে আমার কিছুটা সমস্যা হয়েছিল।
এনজোটিব

আমি সত্যিই মিস করেছি যে ওপি বিভিন্ন ধরণের ফাইলের জন্য আলাদা রঙ চায়।
এনজোটিব

কি দারুন. আমার পক্ষে এটি খুব বেশি কাজের পক্ষে উপযুক্ত
কলব ক্যানিয়ন

6

আপনি এর -execবেশিরভাগটি করতে ব্যবহার করতে পারেন (আমার সমাধান ডিরেক্টরিটির অংশটিকে আলাদা করে না)। যদি -printআপনার findকমান্ডে থাকে তবে এটি দ্বারা প্রতিস্থাপন করুন -exec ls --color -d; আপনি যদি অন্তর্নিহিত মুদ্রণ ব্যবহার করছেন, এটি যুক্ত করুন। এটি আপনার lsসমর্থন --colorবিকল্পটি ধরে নিয়েছে ।

find . -exec ls --color -d {} \;

1
কে নিশ্চিত করেছে তা আমি নিশ্চিত নই, তবে আমি বিশ্বাস করি না যে তারা প্রশ্নটি পড়া শেষ করেছেন (এমন নয় যে আমি বলছি যে এই উত্তরটি যদিও একই ডাউনওটের যোগ্য বলে মনে হচ্ছে) ...
Ignacio Vazquez-Abram

4

এটি পথ এবং ফাইলের নামের জন্য কেবল দুটি রঙের হাইলাইট করে, প্রতি ফাইল-টাইপের জিনিসটি নয় ls:

grepমিলে যাওয়া এবং তুলনাহীন অংশের জন্য আউটপুটটির রঙগুলি সঠিক উপায়ে কনফিগার করুন এবং ফাইলের সাথে মেলে:

$ export GREP_COLORS="sl=0;33;49:ms=1;34;49"
$ find /etc/ -type f | head | grep --color=always '^\|[^/]*$'


স্ক্রিন-, grep রঙের

আপনি ভেরিয়েবলটি ওভাররাইট করতে নাও চান GREP_COLORS, সুতরাং এটির জন্য কেবল এটি সেট করুন grep:

$ find /etc/ -type f | head | GREP_COLORS="sl=0;33;49:ms=1;34;49" grep --color=always '^\|[^/]*$'

(সংজ্ঞায়িত ট্রামের অবজ্ঞাত ভেরিয়েবলের GREP_COLORচেয়ে কম অগ্রাধিকার রয়েছে GREP_COLORS)

কালার কোড জন্য, দেখুন colortest-16প্যাকেজ থেকে colortest,
এবং বিভাগে "তে সেট গ্রাফিক্স রেন্ডিশন" ANSI টার্মিনাল কমান্ড ক্রম


-1

আমি-বিশেষজ্ঞ ধারণা পছন্দ। আমি এই ফাংশনটি তৈরি করতে এটি ব্যবহার করেছি:

function ff {
    find . -name $1 -exec ls -G -d {} \;
}

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