När jag grep man-sidan för find
-kommandot för matchar type
det returnerar många sökresultat som jag inte vill ha. I stället vill jag använda ett kommando som bara returnerar sökresultaten för -type
.
Kommandot man find | grep -type
fungerar inte. Den returnerar:
grep: invalid option -- "t"
Kommentarer
Svar
Om du vill grep för ett mönster som börjar med bindestreck, använd --
före det mönster du anger.
man find | grep -- -type
Om du vill ha mer info, till exempel hela avsnittet som beskriver ett alternativ , du kan försöka använda 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.
Detta fungerar dock inte för alla alternativ du kan söka efter. Till exempel :
$ man find | sed -n "/^[[:space:]]*-type/,/^$/p" -type c File is of type c:
Inte särskilt hjälpsam. Värre, för vissa alternativ kan du vilseledas till att tro att du skulle läsa hela texten om alternativet när du verkligen inte hade ” t. Att till exempel söka -delete
utelämnar den mycket viktiga VARNINGEN som finns som ett andra stycke under den rubriken.
Min rekommendationen är att använda ett standardanrop till man
med LESS
miljövariabeluppsättningen. Jag använder det ganska vanligt i mina svar på den här webbplatsen.
LESS="+/^[[:space:]]*-type" man find
För att lära dig mer om hur detta fungerar, se:
LESS="+/^[[:space:]]*LESS " man less LESS="+/\+cmd" man less LESS="+/\/" man less
Om du bara vill hitta alternativet snabbt och interaktivt på mansidan, lär dig att använda less
” s sökfunktioner. Och se även:
Kommentarer
- Tack för att du publicerade. Kommandona i ditt svar gav de resultat som jag letade efter. Jag accepterar ett svar efter en dag eller två, så snälla ha tålamod.
- @karel, inget problem, jag ' är väldigt tålmodig. 🙂 Lite förbryllad, dock: Jag vet att du kan ' t starta en bounty på en fråga i två dagar, men jag tror att tidsgränsen innan du kan acceptera ett svar är bara 15 minuter eller så.
-
man find | sed -n '/-type/,/^$/p'
ger mycket mer än vad du postade som det kommer att matcha-type
var som helst på raden … jobbar själv med litet skript för att söka man eller hjälp (för inbyggd) och använder för närvarandeawk
som fortfarande har få quirks att lösa ..awk -v RS= -v rx="^\\\s*$arg\\\>" '$0 ~ rx' "$file"
därarg
skulle vara-type
i det här fallet - BTW, @Sundeep, kanske du vill testa de underliggande
troff
-filerna som innehåller den ursprungliga mansidan med formatinformation, istället för textutmatningen av kommandotman
. - @Sundeep, här ' är utgångspunkten för dig . (Se till att följa länken i det svaret.) Det finns ' MYCKET att veta om
troff
. Ping mig i chatten när du är klar med att dyka ner i kaninhålet. 🙂
Svar
Eller rör till less
och mata att ett sökord:
man 1 find | less -p " -type"
(Detta kan misslyckas beroende på exakt vad less
är feed, t.ex. om -type
har fetstilats med baksteg.)
Kommentarer
- Rör genom
col -bx
först.
-type
, eller vill du säga hela avsnittet eller två som beskriver vad-type
gör?-type
skulle räcka för det sätt jag brukar söka på man-sidorna, men återvänder hela stycket eller två som beskriver vad-type
gör skulle vara mycket användbart att göra minst en gång.-type
alternativet gör det.