egrep regex -bash: অপ্রত্যাশিত টোকেনের কাছাকাছি সিনট্যাক্স ত্রুটি `('


0

Regex সহ কমান্ড লাইন থেকে egrep ব্যবহার করে কাজ করে না এবং আমি শিরোনামটিতে ত্রুটিটি পাই।

egrep -rnw /var/log/usres/([a-z]+).([a-z]+)\/([a-z]+).conf/user.settings -e "pattern"

আমি উপর regex যাচাই করেছি https://regex101.com/r/pL5pW4/1 এবং shellcheck.net ব্যবহৃত এবং উভয় কোন সমস্যা বলে। আমি যা করার চেষ্টা করছি তা এই রকম বিশেষ ফোল্ডারগুলির সাথে মেলে:

egrep -rnw /var/log/users/sd.dfr/test.conf/user.settings, so the 

এই উদাহরণে "sd.dfr" এবং "test" হল রেজেক্সের জন্য। ফোল্ডার পাথ তাদের মধ্যে কোন সমন্বয় মেলে। আমি উদ্ধৃত, পালানো, ডবল উদ্ধৃতি চেষ্টা করেছি। কেন এটা কাজ করছে না?


যে regex দ্বারা ব্যাখ্যা করা হচ্ছে bash, না egrep। আপনি যদি globbing এর জন্য একটি রেজেক্স ব্যবহার করেন তবে এটি সত্যিই গুরুত্বপূর্ণ, আপনি এতে নজর রাখতে পারেন shopt -s extglob বর্ধিত প্যাটার্ন মিলে সক্ষম করতে।
jjlin

কি user.settings একটি ফাইল বা একটি ডিরেক্টরি?
John1024

user.settings একটি ফাইল
user53029

উত্তর:


0

grep নিয়মিত এক্সপ্রেশন জন্য অনুসন্ধান বিষয়বস্তু মধ্যে ফাইল এর। এটা জন্য অনুসন্ধান করা হয় না ফাইল যার নাম মেলে নিয়মিত অভিব্যক্তি. (ব্যবহারের find এর জন্য।) অধিকন্তু, grep তাদের দেখার আগে, ফাইল / ডিরেক্টরি নামগুলির তালিকা শেল দ্বারা ব্যাখ্যা করা হয়। শেল ব্যবহার করে ফাইল মেলে globs regexes না।

শেল গ্লোবগুলি রেগুলার এক্সপ্রেশন হিসাবে সুনির্দিষ্ট নয়, তবে নিম্নলিখিতগুলি আপনার জন্য যথেষ্ট ভাল কাজ করতে পারে:

egrep -rnw /var/log/users/*.*/*.conf/user.settings -e "pattern"

অথবা, এখনো ভাল, কারণ egrep অব্যবহৃত

grep -Ernw /var/log/users/*.*/*.conf/user.settings -e "pattern"

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

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