আমি এর জন্য একটি গ্রেপ করতে চাই \resources\
। আমি এটা কিভাবে করবো?
আমি চেষ্টা করেছিলাম:
grep \resources\
grep \\resources\\
grep "\resources\"
grep "\\resources\\"
আমি এর জন্য একটি গ্রেপ করতে চাই \resources\
। আমি এটা কিভাবে করবো?
আমি চেষ্টা করেছিলাম:
grep \resources\
grep \\resources\\
grep "\resources\"
grep "\\resources\\"
উত্তর:
ব্যাকস্ল্যাশ অনেক অ্যাপ্লিকেশনগুলির জন্য একটি বিশেষ চরিত্র:
শেল সহ: আপনাকে অন্য ব্যাকস্ল্যাশ বা আরও মার্জিতভাবে ব্যবহার করে এড়াতে হবে, যখন সম্ভব হবে তখন একক উদ্ধৃতি ব্যবহার করুন :
$ printf '%s\n' foo\\bar 'foo\bar'
foo\bar
foo\bar
এখানে কমান্ড দুটি মান সহ দুটি আর্গুমেন্ট পেয়েছে foo\bar
, যা টার্মিনালের সাথে প্রতিধ্বনিত হয়েছিল।
(উপরে, আমি অনেকগুলি প্রয়োগের printf
পরিবর্তে ব্যাকস্ল্যাশের নিজস্ব ব্যাখ্যাও করি (এখানে একটি ব্যাকস্পেসের চরিত্রের প্রসারিত হবে ))।echo
echo
\b
তবে ব্যাকস্ল্যাশও এর জন্য একটি বিশেষ চরিত্র grep
। এই কমান্ডের মত অনেক বিশেষ সিকোয়েন্স স্বীকার \(
, \|
, \.
, ইত্যাদি। একইভাবে আপনাকে \\
আসল ব্যাকস্ল্যাশ অক্ষরের জন্য ডাবল সহ গ্রেপ খাওয়াতে হবে । এর অর্থ হ'ল শেলটি ব্যবহার করে আপনার টাইপ করতে হবে:
grep 'foo\\bar'
বা সমতুল্য:
grep foo\\\\bar
(উভয় লাইন শেলকে foo\\bar
আর্গুমেন্ট হিসাবে প্রেরণ করতে বলে grep
)।
অন্যান্য অনেক কমান্ড তাদের যুক্তিগুলির মধ্যে ব্যাকস্ল্যাশ ব্যাখ্যা করে ... এবং দুটি স্তরের পলায়নের প্রয়োজন হয় (একটি শেলের ব্যাখ্যা থেকে বাঁচার জন্য, একটি কমান্ডের ব্যাখ্যা থেকে বেরিয়ে আসার জন্য)।
যাইহোক, শেলটির জন্য, একক উদ্ধৃতিগুলি '…'
কোনও ধরণের চরিত্রের ব্যাখ্যার প্রতিরোধ করে, তবে ডাবল উদ্ধৃতিগুলি কেবল তাদের কয়েকটিকে প্রতিরোধ করে: বিশেষত $
, `
এবং এর \
মধ্যে সক্রিয় চরিত্রগুলি থেকে যায় "…"
।
এছাড়াও আপনি ব্যবহার করতে পারেন fgrep
(যা ঠিক হয় grep
সঙ্গে -F
পতাকা)। এটি গ্রেপকে একটি নির্দিষ্ট স্ট্রিং হিসাবে প্যাটার্নটি ব্যাখ্যা করতে বাধ্য করে (যেমন এটি \
একটি আক্ষরিক হিসাবে বিবেচনা করবে \
)। আপনাকে এখনও শেল দ্বারা প্রসারিত হওয়া থেকে ব্যাকস্ল্যাশগুলি রক্ষা করতে হবে।
grep -F '\resources\'
..\
এবং এমনকি '..\\'
আমি যে ফলাফল চাইছিলাম তা পেলাম না। grep -F '..\'
আমি যা চেয়েছিলাম তা পেয়েছি! ধন্যবাদ
grep
একটি ব্যাকস্ল্যাশ উপস্থাপনের জন্য চারটি ব্যাকস্ল্যাশ প্রয়োজন :
grep "\\\\resources\\\\"
grep
অন্য ব্যাকস্ল্যাশ থেকে বাঁচতে কেবল 1 টি ব্যাকস্ল্যাশ প্রয়োজন, তবে শেলের জন্যও ব্যাকস্ল্যাশ উদ্ধৃত করা প্রয়োজন। ডাবল উদ্ধৃতি ( "
) ব্যাকস্ল্যাশগুলি উদ্ধৃত করবেন না, তবে ব্যাকস্ল্যাশ করে, তাই আপনার উদাহরণে ডাবল উদ্ধৃতিগুলি কিছুই করে না এবং পরিবর্তে 4 ব্যাকস্ল্যাশগুলির প্রয়োজন।
grep
।
grep '\\resources\\'