ফেডোরা বনাম উবুন্টুতে গ্রেপ পৃথকভাবে আচরণ করছে


13

সুতরাং যখন আমি ফেডোরায় এটি চালাচ্ছি আমি এটি দেখছি:

$ ls hmm_data/indivA12_AATAAG/refs/par1/
2R-orths.alleles  2R-ref.alleles
$ ls hmm_data/indivA12_AATAAG/refs/par1/ | grep -F '-ref.alleles'
2R-ref.alleles

তবে যখন আমি উবুন্টুতে (একই ডেটা) চালিত হই তখন গ্রেপ থেকে কোনও ফলাফল পাই না:

$ ls hmm_data/indivA12_AATAAG/refs/par1/
2R-orths.alleles  2R-ref.alleles
$ ls hmm_data/indivA12_AATAAG/refs/par1/ | grep -F '-ref.alleles'

কোন ধারণা কি চলছে? আমি কীভাবে এমন কিছু জিনিস নিয়ে আসতে পারি যা উভয় সিস্টেমে একই কাজ করবে?


কীভাবে ls *-ref.alleles?
গ্লেন জ্যাকম্যান 19

@ এলেনজ্যাকম্যান, আমি এটির কথা ভেবেছিলাম তবে কেউ ঠিক সেটাই করেছে এবং ব্যাশ স্ক্রিপ্টে সেই লাইনটি আমি মন্তব্য করার চেষ্টা করছি :-) আমি কেবল অনুমান করতে পারি যে তাদের কোনও কারণ ছিল ...
গ্রেগ_থ_অ্যান্ট

উত্তর:


30
grep -F '-ref.alleles'

সমান:

grep -F -ref.alleles

(অ্যাডোস্ট্রোফসের মধ্যে কোনও চরিত্রই শেল মেটাচ্যাকার্টার নয়, সুতরাং তাদের উদ্ধৃতকরণের কোনও প্রভাব নেই))

এটি এর সমতুল্য:

grep -F -r -e f.alleles

-উপসর্গযুক্ত বিকল্পগুলির সাধারণ বিশ্লেষণ দ্বারা । -eবিকল্প একটি আর্গুমেন্ট নেয়, কিন্তু -Fএবং -rনা।

যেহেতু আপনি কোনও ফাইল গ্রেপ-তে নির্দিষ্ট করেন নি, তাই স্ট্যান্ডিনের উপর ডিফল্ট আচরণ হ'ল ... -rবিকল্পটি কোনও বুদ্ধি না করে .পরিবর্তে অনুসন্ধানের ক্ষেত্রে ডিফল্ট হয় (বর্তমান ডিরেক্টরিটি) এর পরিবর্তে পুনরায় এবং স্টিডিনকে উপেক্ষা করে। কিছু সংস্করণে।

যেমনটি --শুরু হয় এমন একটি রেইগএক্সপ্যাকের আগে আপনাকে "আর কোনও বিকল্প নেই" সূচক ব্যবহার করতে হবে-

grep -F -- -ref.alleles

আমি বিন্দুটি সন্ধান করেছি যেখানে -rকোনও ফাইল আর্গুমেন্টের সাথে আচরণের পরিবর্তন হয়নি। এটি ২ মার্চ, ২০১২ প্রকাশিত সংস্করণ ২.১১ এ ছিল । প্রকাশের ঘোষণাটি দেখুন।

এই গিটটি আচরণটি প্রভাবিত করেছে যা এই এক এবং এটি

আপনি যদি grep --versionআপনার দুটি মেশিনে চালনা করেন তবে আমি নিশ্চিত যে আপনি তাদের মধ্যে একটিই ২.১১ এর ভুল দিকে রয়েছেন


দুর্দান্ত উত্তর, সমস্ত ধরণের গবেষণার জন্য ধন্যবাদ যেখানে সংস্করণটি পরিবর্তিত হয়েছে to

2
ওহ ধন্যবাদ. আপনি ঠিক বলেছেন, আমি গ্রেপ 2.6.3 বনাম গ্রেপ 2.14 পেয়েছি।
গ্রেগ_এটি_আর

6

নেতৃস্থানীয় -সমস্যা হয়। একই ফলাফল যুক্ত করতে যুক্ত করুন --:

grep -F -- '-ref.alleles'

থেকে man bash:

A -- signals the end of options and disables further option
processing. Any arguments after the -- are treated as filenames
and arguments.

1
উবুন্টু এবং ফেডোরার কেন এটির পার্থক্য রয়েছে? এটি উভয় উপর একই নেতিবাচক ফলাফল দেওয়া উচিত নয়?
গ্লিয়ুন

ধন্যবাদ। যদি এই কমান্ডটি অন্য কমান্ডে পাইপ করা হয়, তবে - সেখানে কোনও সমস্যা হবে? বা না - কেবল প্রদর্শিত আদেশটি প্রয়োগ করা হবে যেখানে এটি প্রদর্শিত হবে?
গ্রেগ_এই_আন্তে

4
ব্যাশ ম্যান পৃষ্ঠাটি আসলেই প্রাসঙ্গিক নয়। এটি --বাশের নিজস্ব কমান্ড লাইনে চিকিত্সার ব্যাখ্যা দেয় যা গ্রেপের বোঝার থেকে পৃথক --। তারা একইভাবে কাজ করে কারণ এটি একটি সাধারণ সম্মেলন, তবে সাধারণভাবে আপনার শেলের ম্যান পৃষ্ঠাটি আপনাকে অন্য প্রোগ্রামগুলিতে যুক্তিগুলির অর্থ সম্পর্কে কিছু বলে না।

1

আপনার গ্রেপ কমান্ডে এমন কোনও এলিয়াস রয়েছে যা এর আচরণকে ওভাররাইড করে .bashrc দেখুন। এটা হতে পারে সমস্যা। "-F" পরম ছাড়াই গ্রেপ চেষ্টা করুন।

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