Wanneer ik de man-pagina van het find
commando voor komt overeen met type
het retourneert veel zoekresultaten die ik niet wil. In plaats daarvan wil ik een commando gebruiken dat alleen de zoekresultaten retourneert voor -type
.
Het commando man find | grep -type
werkt niet. Het retourneert:
grep: invalid option -- "t"
Reacties
Answer
Als je een patroon wilt gebruiken dat begint met een koppelteken, gebruik dan --
voor het patroon dat u specificeert.
man find | grep -- -type
Als u meer informatie wilt, bijvoorbeeld de hele sectie die een optie beschrijft , u zou kunnen proberen 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.
Dit werkt echter niet voor elke optie waarnaar u zou kunnen zoeken. Bijvoorbeeld :
$ man find | sed -n "/^[[:space:]]*-type/,/^$/p" -type c File is of type c:
Niet erg nuttig. Erger nog, voor sommige opties zou je kunnen worden misleid door te denken dat je “de hele tekst over de optie had gelezen terwijl je dat echt niet had gedaan” t. Als u bijvoorbeeld zoekt op -delete
, wordt de zeer belangrijke WAARSCHUWING weggelaten die is opgenomen als een tweede alinea onder die kop.
Mijn de aanbeveling is om een standaardoproep naar man
te gebruiken met de LESS
omgevingsvariabele set. Ik gebruik het vrij vaak in mijn antwoorden op deze site.
LESS="+/^[[:space:]]*-type" man find
Voor meer informatie over hoe dit werkt, zie:
LESS="+/^[[:space:]]*LESS " man less LESS="+/\+cmd" man less LESS="+/\/" man less
Als u de optie snel en interactief in de man-pagina wilt vinden, leer dan de zoekmogelijkheden van less
” te gebruiken. En zie ook:
Reacties
- Bedankt voor het plaatsen. De opdrachten in je antwoord leverden de resultaten op waarnaar ik op zoek was. Ik accepteer een antwoord na een dag of twee, dus wees geduldig.
- @karel, geen probleem, ik ' ben erg geduldig. 🙂 Een beetje verbaasd: ik weet dat je ' start geen premie op een vraag gedurende twee dagen, maar ik denk dat de tijdslimiet voordat je een antwoord kunt accepteren slechts 15 minuten is of zo.
-
man find | sed -n '/-type/,/^$/p'
geeft veel meer dan wat je hebt gepost komt overeen met-type
waar dan ook in de regel … ik werk zelf aan een klein script om man of hulp te zoeken (voor ingebouwd) en gebruik momenteelawk
die nog steeds weinig eigenaardigheden heeft om op te lossen ..awk -v RS= -v rx="^\\\s*$arg\\\>" '$0 ~ rx' "$file"
waararg
-type
zou zijn in dit geval - Trouwens, @Sundeep, je zou kunnen proberen om de onderliggende
troff
bestanden te parseren die de originele manpage-informatie met formaatinformatie bevatten, in plaats van de tekstuitvoer van hetman
commando. - @Sundeep, hier ' is het startpunt voor jou . (Zorg ervoor dat u de link in dat antwoord volgt.) Er is ' VEEL te weten over
troff
. Ping me in de chat als je klaar bent met duiken in het konijnenhol. 🙂
Antwoord
Of ga naar less
en voer dat een zoekterm:
man 1 find | less -p " -type"
(Dit kan mislukken, afhankelijk van wat less
feed is, bijvoorbeeld als -type
is vetgedrukt met backspaces.)
Reacties
- Leid het door
col -bx
eerst.
-type
bevatten, of wil je bijvoorbeeld de hele of twee alineas die beschrijven wat-type
doet?-type
bevatten, zou voldoende zijn voor de manier waarop ik gewoonlijk de man-paginas doorzoek, maar teruggeven de hele paragraaf of twee die beschrijft wat-type
doet, zou erg handig zijn om minstens één keer te doen.-type
optie doet.