मान लीजिए मैं बिना स्क्रॉल किए कमांड -i
में स्विच का उपयोग जानना चाहता हूं grep
। मुझे उस कमांड के लिए विनिर्देश की आवश्यकता है या कम से कम स्क्रीन शो को पहले देखें। तो कैसे? जैसा कि आप कह सकते हैं कि सामान्य तौर पर सिर्फ के लिए नहीं grep -i
।
मान लीजिए मैं बिना स्क्रॉल किए कमांड -i
में स्विच का उपयोग जानना चाहता हूं grep
। मुझे उस कमांड के लिए विनिर्देश की आवश्यकता है या कम से कम स्क्रीन शो को पहले देखें। तो कैसे? जैसा कि आप कह सकते हैं कि सामान्य तौर पर सिर्फ के लिए नहीं grep -i
।
जवाबों:
इस सरल sed
आदेश का प्रयास करें ,
$ man grep | sed -n '/-i, --ignore-case/,+2p'
-i, --ignore-case
Ignore case distinctions in both the PATTERN and the input
files. (-i is specified by POSIX.)
स्पष्टीकरण:
sed -n '/-i, --ignore-case/,+2p'
|<-Search pattern->|
यह उस रेखा को प्रिंट करेगा जिसमें 2 पैटर्न के साथ खोज पैटर्न शामिल है जो खोज पैटर्न लाइन के ठीक नीचे मौजूद है।
या
आप बस नीचे दिए गए खोज में केवल झंडे दे सकते हैं।
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *i, -/,+3p'
-i, --ignore-case
Ignore case distinctions in both the PATTERN and the input
files. (-i is specified by POSIX.)
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *V, -/,+3p'
-V, --version
Print the version number of grep to the standard output stream.
This version number should be included in all bug reports (see
below).
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *F, -/,+3p'
-F, --fixed-strings
Interpret PATTERN as a list of fixed strings, separated by
newlines, any of which is to be matched. (-F is specified by
POSIX.)
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *G, -/,+3p'
-G, --basic-regexp
Interpret PATTERN as a basic regular expression (BRE, see
below). This is the default.
आप त्वरित पहुंच के लिए इस स्क्रिप्ट को अपने .bashrc
( $HOME/.bashrc
) में जोड़ सकते हैं :
mangrep(){
USAGE="mangrep <application> <switch>"
if [[ "$#" -ne "2" ]]
then
echo "Usage: $USAGE"
else
man "$1" | sed -n "/ *"$2", -/,+3p"
fi
}
टर्मिनल पर निम्न कमांड टाइप करें:
man grep
फिर स्लैश चरित्र टाइप करें /, और अपनी खोज लिखें, जैसे -i
, उसके बाद Enter। यह खोज स्ट्रिंग की पहली घटना पर कर्सर को स्थिति देगा। दबाने nसे कर्सर अगली घटना पर चला जाता है। दबाने Shift+ nपिछली आवृत्ति के लिए कर्सर ले जाता है।
-i
। man grep
लेकिन ओपी केवल -i
मैन पेज में ध्वज से संबंधित विवरण चाहता है ।
-i
। ठीक यही ओपी चाहता है।
जबकि सबसे सरल दृष्टिकोण /@girardengo द्वारा सुझाए गए खोज के साथ है , आप इसका उपयोग भी कर सकते हैं जिसके grep
बजाय sed
मुझे आसान लगता है:
$ man grep | grep -A 1 '^ *-i'
-i, --ignore-case
Ignore case distinctions in both the PATTERN and the input
files. (-i is specified by POSIX.)
इसका -A N
मतलब है "एक मिलान के बाद एन लाइनों को प्रिंट करें। अविनाश के sed
दृष्टिकोण के समान अगली कुछ पंक्तियां प्राप्त करने के लिए एक चाल ।
आप खोज फ़ंक्शन का उपयोग अंदर कर सकते हैं man
, बस "s"
, उस कुंजी को टाइप करें जिसकी आप तलाश कर रहे हैं, (-आई आपके मामले में) और इंट्रो दबाएं।
या, आप इस साइट को आपके लिए खोज करने दे सकते हैं:
http://explainshell.com/explain?cmd=grep+-i
आपको टर्मिनल का उपयोग करने के लिए ब्राउज़र से बिट के लिए स्विच करना होगा, लेकिन इसके आसपास भी तरीके हैं।
मुझे पता है कि सबसे कुशल तरीका है, जिसके लिए मैन पेज खोजना है -i
(यह साइट मेरे कोड को रेंडर करने में विफल रही है। मेरा मतलब क्या है <space><space><space>-i
) वह 3 रिक्त स्थान है (आपको अधिक / कम रिक्त स्थान की आवश्यकता हो सकती है) जिस ध्वज की आपको तलाश है। यह लगभग हमेशा मेरे अनुभव में काम करता है, और आप उन मामलों में इसके कुछ प्रकार में बदल सकते हैं जहां यह काम नहीं करता है।
यह काम करता है क्योंकि झंडे का वास्तविक प्रलेखन आमतौर पर इंडेंट किया जाता है। यह अन्य खंडों में ध्वज के अन्य उल्लेखों को खोजने से बचता है, क्योंकि आमतौर पर उनके सामने केवल एक ही स्थान होता है।
सभी उत्तरों के माध्यम से यह ठीक हो सकता है, लेकिन मुझे लगता है कि आप केवल दस्तावेज़ीकरण में ध्यान केंद्रित कर रहे हैं, सभी नहीं। उदाहरण के लिए, -i
grep प्रलेखन के स्विच को खोजने के लिए:
info grep Invoking Command-line\ Options Matching\ Control
मुझे "grep" के बारे में सभी जानकारी मिलेगी, "मिलान नियंत्रण" के लिए विशिष्ट "कमांड-लाइन विकल्प" कैसे "लागू करें"। दुर्भाग्य यह है कि अधिक से अधिक गहराई में जाने नहीं करता है, लेकिन यह है -i
, -y
, --ignore-case
बातें पहली बार 25 लाइनों में, कुछ उचित आप की जरूरत नहीं है कि सभी अपने तरीके से नीचे स्क्रॉल करने के लिए।
यह घोल अधिक लचीला है और आपको सभी संक्रमणों को खोजने की अनुमति देता है:
info --apropos=--ignore-case
"(coreutils)join invocation" -- --ignore-case <1>
"(coreutils)uniq invocation" -- --ignore-case <2>
"(coreutils)sort invocation" -- --ignore-case
"(gettext)msggrep Invocation" -- --ignore-case, ‘msggrep’ option
"(grep)Matching Control" -- --ignore-case
( --ignore-case
इसके बजाय उपयोग -i
करना था क्योंकि यह बहुत आम था, लेकिन आप किसी भी मामले में जानकारी के लिए आउटपुट को संसाधित कर सकते हैं)
इस मामले में, आपके पास जानकारी पृष्ठ और सटीक अनुभाग दोनों का नाम है। आह, लगभग भूल गया, आप भी tabजानकारी पृष्ठों के अधिकांश अनुभाग के माध्यम से अपना रास्ता बना सकते हैं ।
जैसा कि less
डिफ़ॉल्ट रूप से पेजर के रूप में उपयोग किया जाता है man
, आप पृष्ठ को खोलने LESS
पर खोज करने के लिए एक पैटर्न पास करने के लिए पर्यावरण चर का उपयोग कर सकते हैं less
। यह करने के लिए समान है man ls
और फिर विकल्प के लिए खोज --all
या -a
टाइप करके /और फिर पैटर्न जैसे --all
या इनपुट करके -a
।
इन सभी द्वारा किया जा सकता है:
LESS='+/--all' man ls
या
LESS='+/-a' man ls
इनपुट करें जिसे आप खोजना चाहते हैं /
।
वर्तमान में यह शॉर्ट्स (उदाहरण --all
) की तुलना में लंबे विकल्पों (जैसे ) के लिए सबसे अच्छा काम करता है -a
।
आप चाहते हैं एक पैटर्न हाइफ़न से शुरुआत के लिए परिणाम, उपयोग
पैटर्न से पहले हो जाए। उदाहरण का उपयोग कर :grep
man <program>
--
man find
man find | grep -- -type
यदि आप अधिक जानकारी चाहते हैं, उदाहरण के लिए एक विकल्प का वर्णन करने वाला संपूर्ण अनुभाग, उपयोग करने का प्रयास करें sed
:
$ man find | sed -n '/-mindepth/,/^$/p'
-mindepth levels
Do not apply any tests or actions at levels less than levels (a
non-negative integer). -mindepth 1 means process all files
except the command line arguments.