উত্তর:
আপনি একটি অক্ষর শ্রেণি ব্যবহার করতে পারেন :
/[^\s\\]/
এমন কোনও কিছুর সাথে মেলে যা একটি শ্বেতক্ষেত্রের চরিত্র বা নয় \
। এখানে আরও একটি উদাহরণ:
[abc]
অর্থ "মিল a
, b
বা c
"; [^abc]
মানে হলো "ছাড়া কোন চরিত্র মেলে a
, b
বা c
"।
$0~/\s*^\s/
কোনও শ্বেত শূন্যস্থান নয় এমন কোনও চরিত্রের পরে অনেকগুলি শ্বেত স্পেস দিয়ে শুরু হবে
/^\s+/
- এক বা একাধিক সাদা বর্ণের অক্ষর দ্বারা অনুসরণ করা লাইনের শুরু।
g
সংশোধক যুক্ত করুন। /[^\s\\]/g
আপনি একটি চেহারাতে ব্যবহার করতে পারেন:
/(?=\S)[^\\]/
/(?=\S)\W/
THIS IS A TEST, AND AGAIN
। নিম্নলিখিত আমার জন্য ভাল কাজ করে (?=\S)[^"]*
।
এটি আমার জন্য সেড ব্যবহার করে কাজ করেছে [ সম্পাদনা করুন: নীচে মন্তব্যগুলি নীচে সেড সমর্থন করে না] গুলি]
[^ ]
যখন
[^\s]
না
# Delete everything except space and 'g'
echo "ghai ghai" | sed "s/[^\sg]//g"
gg
echo "ghai ghai" | sed "s/[^ g]//g"
g g
\s
শুধু স্থান অক্ষরের চেয়েও বেশি মিলছে। এর মধ্যে রয়েছে ট্যাব, লাইনফিডের ক্যারেজ রিটার্ন এবং অন্যান্য (আরও কতজন রেজেক্স গন্ধের উপর নির্ভরশীল) অন্তর্ভুক্ত। এটি পার্ল আবিষ্কার, মূলত পসিক্স অক্ষর শ্রেণীর জন্য একটি শর্টহ্যান্ড [:space:]
এবং এতে সমর্থন নেই sed
। আপনার উপরের প্রথম রেজেক্স হওয়া উচিত s/[^[:space:]g]//g
।
echo "ghai ghai" | sed "s/[^[:space:]g]//g"
:g g
আমার সিস্টেমে: সেন্টস 5
আমি \s
সংগ্রহের বাইরে ব্যবহার করতে পারি তবে সংগ্রহের [:space:]
অভ্যন্তরে ব্যবহার করতে হবে । আসলে আমি [:space:]
কেবল সংগ্রহের অভ্যন্তরেই ব্যবহার করতে পারি । সুতরাং এটি ব্যবহার করে একটি জায়গার সাথে মেলে আমাকে ব্যবহার করতে হবে [[:space:]]
যা সত্যিই অদ্ভুত।
echo a b cX | sed -r "s/(a\sb[[:space:]]c[^[:space:]])/Result: \1/"
Result: a b cX
\s
[[:space:]]
[^[:space:]]
এই দুটি কাজ করবে না:
a[:space:]b instead use a\sb or a[[:space:]]b
a[^\s]b instead use a[^[:space:]]b
([^[:space:]])
পরিবর্তে আপনাকে ব্যবহার করতে হবে ([^\s])
। আমি
^
প্রত্যাখ্যান হিসাবে ব্যাখ্যা করা হয় এবং কখন লাইন শুরু হিসাবে? সেই ক্ষেত্রে, কেন এই$0~/\s*^\s/