जवाबों:
उपयोग:
grep -- -X
संबंधित: एक नंगे डबल डैश का क्या मतलब है? ( नैट्टी के बारे में अखरोट के लिए धन्यवाद )।
ARGS="-a -b -c"
grep -- "$ARGS"
grep -- "--name awesome"
,।
डैश बश में एक विशेष पात्र है जैसा कि http://tldp.org/LDP/abs/html/special-chars.html#DASHREF पर दिया गया है । तो इससे बचने के लिए बस एक बार आपको बैश अतीत हो जाता है, लेकिन ग्रीप अभी भी डैश (विकल्प प्रदान करके) का अपना अर्थ है।
तो आपको वास्तव में इसे दो बार भागने की ज़रूरत है (यदि आप अन्य उल्लिखित उत्तरों का उपयोग नहीं करना चाहते हैं)। निम्नलिखित इच्छा / काम करना चाहिए
grep \\-X
grep '\-X'
grep "\-X"
बैश एक स्क्रिप्ट / प्रोग्राम में तर्कों को कैसे पास करता है, यह जानने के लिए एक .sh स्क्रिप्ट तैयार करना है, जो सभी तर्कों को सही तरीके से पूरा करे। मैं समय-समय पर खेलने के लिए echo-args.sh नामक स्क्रिप्ट का उपयोग करता हूं, इसमें सभी शामिल हैं:
echo $*
मैं इसका आह्वान करता हूं:
bash echo-args.sh \-X
bash echo-args.sh \\-X
bash echo-args.sh "\-X"
तुम्हें नया तरीका मिल गया है।
grep -e -X
चाल चलेगा।
-P
(लेकिन यह एक और कहानी है और यहां लागू नहीं होती है))।
पहले से बताए गए प्रसंस्करण तर्कों को रोकने के लिए "-" का उपयोग करने का सही तरीका होगा। यह उपकरण के स्रोत में getopt_long (GNopt C-function से getopt.h) के उपयोग के कारण है।
यही कारण है कि आप अन्य कमांड-लाइन टूल पर समान घटना को नोटिस करते हैं; चूंकि उनमें से अधिकांश GNU उपकरण हैं, और इस कॉल का उपयोग करते हैं, इसलिए वे समान व्यवहार प्रदर्शित करते हैं।
एक साइड नोट के रूप में - getopt_long है जो हमें -rlo और --really_long_option और दुभाषिया में तर्कों के संयोजन के बीच शांत विकल्प देता है।
यदि आप एक और उपयोगिता का उपयोग कर रहे हैं जो कि grep के लिए एक तर्क पास करता है, तो आप उपयोग कर सकते हैं:
'[-]X'
आप nawk का उपयोग कर सकते हैं
$ nawk '/-X/{print}' file
ls -l | grep "^-"
आशा है कि यह आपके उद्देश्य की पूर्ति करेगा।
grep "^ -X" फ़ाइल
यह grep करेगा और सभी लाइनों को फाइल बनाएगा। ^ grep में "^" से शुरू होने वाली रेखा को इंगित करता है
-
, लाइनें नहीं।
--
मतलब है या क्या है: unix.stackexchange.com/questions/11376/…