Når jeg griber mandsiden til find
-kommandoen matcher type
det returnerer mange søgeresultater, som jeg ikke ønsker. I stedet for vil jeg bruge en kommando, der kun returnerer søgeresultaterne for -type
.
Kommandoen man find | grep -type
fungerer ikke. Det returnerer:
grep: invalid option -- "t"
Kommentarer
Svar
Hvis du vil gribe efter et mønster, der begynder med en bindestreg, skal du bruge --
før det mønster, du angiver.
man find | grep -- -type
Hvis du vil have mere info, for eksempel hele sektionen, der beskriver en mulighed , du kunne prøve at bruge 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.
Dette fungerer dog ikke for enhver mulighed, du kan søge efter. For eksempel :
$ man find | sed -n "/^[[:space:]]*-type/,/^$/p" -type c File is of type c:
Ikke særlig nyttigt. Værre, for nogle indstillinger kan du vildledes til at tro, at du “læste hele teksten om indstillingen, når du virkelig ikke havde” t. Hvis du f.eks. søger -delete
, udelades den meget vigtige ADVARSEL, der findes som et andet afsnit under den overskrift.
Min anbefaling er at bruge et standardopkald til man
med LESS
miljøvariabelsættet. Jeg bruger det ret almindeligt i mine svar på dette websted.
LESS="+/^[[:space:]]*-type" man find
For at lære mere om, hvordan dette fungerer, se:
LESS="+/^[[:space:]]*LESS " man less LESS="+/\+cmd" man less LESS="+/\/" man less
Hvis du bare vil finde muligheden hurtigt og interaktivt på mandsiden, skal du lære at bruge less
” s søgefunktioner. Og se også:
Kommentarer
- Tak for dit indlæg. Kommandoerne i dit svar returnerede de resultater, jeg ledte efter. Jeg accepterer et svar efter en dag eller to, så vær tålmodig.
- @karel, ikke noget problem, jeg ' er meget tålmodig. 🙂 Dog lidt forvirret: Jeg ved, du kan ' t start en bounty på et spørgsmål i to dage, men jeg tror, at tidsfristen, inden du kan acceptere et svar, kun er cirka 15 minutter.
-
man find | sed -n '/-type/,/^$/p'
giver meget mere end hvad du skrev som det vil matche-type
hvor som helst på linjen … arbejder selv på lille script for at søge mand eller hjælp (til indbygget) og bruger i øjeblikketawk
som stadig har få quirks at løse ..awk -v RS= -v rx="^\\\s*$arg\\\>" '$0 ~ rx' "$file"
hvorarg
ville være-type
i denne sag - BTW, @Sundeep, kan du prøve at parsere de underliggende
troff
filer, der indeholder den originale man-side info med formatoplysninger i stedet for tekstoutput af kommandoenman
. - @Sundeep, her ' er startpunktet for dig . (Sørg for at følge linket i det svar.) Der er ' MEGET at vide om
troff
. Ping mig i chat, når du er færdig med at dykke ned i kaninhullet. 🙂
Svar
Eller rør til less
og feed at et søgeudtryk:
man 1 find | less -p " -type"
(Dette kan mislykkes afhængigt af, hvad less
er foder, f.eks. hvis -type
er blevet fed med backspaces.)
Kommentarer
- Rør det gennem
col -bx
først.
-type
, eller vil du sige hele eller to afsnit, der beskriver hvad-type
gør?-type
, ville være nok til den måde, jeg normalt søger på mandsiderne, dog tilbage hele afsnit eller to, der beskriver, hvad-type
gør, ville være meget nyttigt at gøre mindst en gang.-type
indstillingen gør.