Når jeg griper mansiden til find
-kommandoen for samsvarer med type
det returnerer mange søkeresultater som jeg ikke vil ha. I stedet vil jeg bruke en kommando som returnerer bare søkeresultatene for -type
.
Kommandoen man find | grep -type
fungerer ikke. Den returnerer:
grep: invalid option -- "t"
Kommentarer
Svar
Hvis du vil gripe etter et mønster som begynner med en bindestrek, bruk --
før mønsteret du angir.
man find | grep -- -type
Hvis du vil ha mer info, for eksempel hele delen som beskriver et alternativ , kan du prøve å bruke 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 imidlertid ikke for alle alternativene du kan søke etter. For eksempel :
$ man find | sed -n "/^[[:space:]]*-type/,/^$/p" -type c File is of type c:
Ikke veldig nyttig. Verre, for noen alternativer kan du bli villedet til å tro at du «hadde lest hele teksten om alternativet når du virkelig ikke hadde» t. Hvis du for eksempel søker etter -delete
, utelates den svært viktige ADVARSEL som er et andre avsnitt under den overskriften.
Min anbefaling er å bruke en standardanrop til man
med settet LESS
. Jeg bruker det ganske ofte i svarene mine på dette nettstedet.
LESS="+/^[[:space:]]*-type" man find
For å lære mer om hvordan dette fungerer, se:
LESS="+/^[[:space:]]*LESS " man less LESS="+/\+cmd" man less LESS="+/\/" man less
Hvis du bare vil finne alternativet raskt og interaktivt på mansiden, kan du lære å bruke less
» s søkefunksjoner. Og se også:
Kommentarer
- Takk for at du postet. Kommandoene i svaret ditt returnerte resultatene jeg lette etter. Jeg godtar svaret etter en dag eller to, så vær tålmodig.
- @karel, ikke noe problem, jeg ' er veldig tålmodig. 🙂 Litt forvirret, skjønt: Jeg vet at du kan ' t starter en bounty på et spørsmål i to dager, men jeg tror tidsfristen før du kan godta et svar er bare 15 minutter eller så.
-
man find | sed -n '/-type/,/^$/p'
gir mye mer enn det du la ut som det vil matche-type
hvor som helst på linjen … jobber selv med lite skript for å søke mann eller hjelp (for innebygd) og bruker for øyeblikketawk
som fremdeles har få quirks å løse ..awk -v RS= -v rx="^\\\s*$arg\\\>" '$0 ~ rx' "$file"
derarg
ville være-type
i denne saken - BTW, @Sundeep, vil du kanskje prøve å analysere de underliggende
troff
filene som inneholder den opprinnelige mansiden info med formatinformasjon, i stedet for tekstutdata av kommandoenman
. - @Sundeep, her ' er utgangspunktet for deg . (Pass på å følge lenken i det svaret.) ' er MYE å vite om
troff
. Ping meg i en prat når du er ferdig med å dykke ned i kaninhullet. 🙂
Svar
Eller rør til less
og feed at et søkeord:
man 1 find | less -p " -type"
(Dette kan mislykkes avhengig av nøyaktig hva less
er feed, f.eks. hvis -type
har blitt fet skrift med tilbaketast.)
Kommentarer
- Rør den gjennom
col -bx
først.
-type
, eller vil du si det hele avsnittet eller to som beskriver hva-type
gjør?-type
ville være nok for måten jeg vanligvis søker på mansidene, men tilbake hele avsnittet eller to som beskriver hva-type
gjør, vil være veldig nyttig å gjøre minst en gang.-type
alternativet gjør det.