কিভাবে শেল এর পরামিতি <বা> পলায়ন?


10

আমি grepএকটি পিসিআরই এক্সপ্রেশন ব্যবহার করতে চাই যাতে এই <চরিত্রটি থাকে। বাশ ভাবছেন আমি পুনর্নির্দেশ করতে চাই, কিন্তু আমি চাই না। আমি কীভাবে পালাতে <পারি?

উত্তর:


11

আমি ব্যাকস্ল্যাশ দিয়ে এটি করতে সক্ষম হয়েছি:

25 % grep \< xmospos.c
#include        <stdio.h>
#include        <stdlib.h>
#include        <getopt.h>
#include        <X11/Xlib.h>

দু'জন বোকা উত্তর দিয়েছিল তার চেয়ে কম একটি উদ্ধৃত, এবং একটি উদ্ধৃত, ব্যাকস্ল্যাশ কম।


5
হ্যাঁ, বা এটি একক উদ্ধৃতিতে
রেখেছেন

আমার এখনও শিখতে হবে, উদাহরণস্বরূপ কীভাবে পলায়নের সাথে এটি কাজ করে: grep -oP '(?< )(.*)$'উদাহরণস্বরূপ একক উদ্ধৃতি দিয়ে কাজ করে না। প্রথমে চেষ্টা করেছিলাম।
হ্যাক্রে

@hakre আপনার regexp এ একটি সিনট্যাক্স ত্রুটি বলে মনে হচ্ছে। মানে (?<! )(.*)$নাকি (?<= )(.*)$?
গিলস 'অশুভ হওয়া বন্ধ করুন'

4

দুটি সহজ নিয়ম:

  • একটি ব্যাকস্ল্যাশ \Cএকটি নতুন লাইন ব্যতীত পরবর্তী চরিত্রটিকে ছাড়িয়ে যায় it
  • একক উদ্ধৃতি 'text'ব্যাকস্ল্যাশ সহ তাদের মধ্যে যে কোনও চরিত্রের হাতছাড়া করে, তবে একটি উদ্ধৃতিও অন্তর্ভুক্ত করে না (যেহেতু এটি উদ্ধৃত পাঠ্যের শেষে চিহ্নিত করে)।

এভাবে:

grep -P '<html>' myfile
grep -P \<html\> myfile
grep -P '(?<!<)html' myfile
grep -P \(\?\<\!\<\) myfile

আপনার যদি একটি যুক্তি পাস করতে হয় যা একক উক্তি থাকে, আপনি একক উদ্ধৃতিতে একটি উদ্ধৃতি '\''"পালাতে" ব্যবহার করতে পারেন । প্রযুক্তিগতভাবে, এটি যা করে তা হ'ল প্রথম আক্ষরিক পাঠ শেষ হয়, তারপরে 'একই শব্দের সাথে একটি আক্ষরিক রাখুন , তারপরেও আরও শাব্দিক পাঠ্য একই শব্দে।

grep '^D'\''oh!' myfile

উদ্ধৃতি বিধিগুলির বাকি অংশগুলি (সংক্ষেপিত):

  • আপনাকে নিম্নলিখিত অক্ষরগুলিকে কমপক্ষে কয়েকটি সময় উদ্ধৃত করতে হবে: শ্বেতস্থান এবং !"#$&'()*;<>?[\]^`{|}~(অন্য কথায়, নিম্নলিখিত অক্ষরগুলি নিরাপদ: অক্ষর, সংখ্যা, %+,-./:=@_এবং নন-এসসিআইআই অক্ষর)।
  • ডাবল উদ্ধৃতিগুলির মধ্যে, সমস্ত অক্ষর অক্ষরে অক্ষরে ব্যবহৃত হয় "$\`এবং (ইতিহাস সক্ষম সহ শেলগুলিতে) !। ডাবল উদ্ধৃতিগুলির মধ্যে একটি ব্যাকস্ল্যাশ স্ট্রিংটিতে উপস্থিত হবে যদি না এটি অক্ষরহীন অক্ষরের একটির আগে থাকে।

এই নিয়মগুলি বাশ এবং অন্যান্য বোর্ন-স্টাইলের শেলগুলির জন্য (যেমন ছাই এবং ksh)। এগুলি zsh তেও প্রযোজ্য (বাদে =হোয়াইটস্পেসের পরে উদ্ধৃতি লাগতে পারে)। সিএসএস / টিসিএস এবং ফিশের নিয়মগুলি আলাদা।

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