Wenn ich die Manpage des Befehls find
für grep stimmt mit type
überein. Es werden viele Suchergebnisse zurückgegeben, die ich nicht möchte. Stattdessen möchte ich einen Befehl verwenden, der nur die Suchergebnisse für -type
.
Der Befehl man find | grep -type
funktioniert nicht. Es wird Folgendes zurückgegeben:
grep: invalid option -- "t"
Kommentare
- Möchten Sie nur die einzelnen Zeilen der formatierten Manpage die die Zeichenfolge
-type
enthalten, oder möchten Sie beispielsweise den gesamten Absatz oder zwei, der beschreibt, was-type
tut? - Ich möchte wissen, wie es in beide Richtungen geht. Das Suchen nach den einzelnen Zeilen, die die Zeichenfolge
-type
enthalten, würde für die Art und Weise ausreichen, wie ich normalerweise die Manpages durchsuche, jedoch zurückkehre Der gesamte oder die zwei Absätze, in denen beschrieben wird, was-type
bewirkt, sind mindestens einmal sehr nützlich. - Übrigens, wenn das Anzeigen einer Webseite eine Alternative ist, Idan Kamara von EXPLAINSHELL.com hat großartige Arbeit geleistet, um die Teile von Manpages zu extrahieren, die Befehlsoptionen beschreiben. Siehe zum Beispiel EXPLAINSHELL.com/Explain?cmd=find+-type+f , um zu sehen, was die
-type
Option funktioniert.
Antwort
Wenn Sie nach einem Muster suchen möchten, das mit einem Bindestrich beginnt, verwenden Sie --
vor dem von Ihnen angegebenen Muster.
man find | grep -- -type
Wenn Sie weitere Informationen wünschen, z. B. den gesamten Abschnitt, in dem eine Option beschrieben wird Sie könnten versuchen, Sed zu verwenden:
$ 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.
Dies funktioniert jedoch nicht für jede Option, nach der Sie suchen könnten. Zum Beispiel :
$ man find | sed -n "/^[[:space:]]*-type/,/^$/p" -type c File is of type c:
Nicht sehr hilfreich. Schlimmer noch, bei einigen Optionen könnten Sie in die Irre geführt werden, Sie würden „den gesamten Text über die Option lesen, wenn Sie es wirklich nicht getan haben“. t. Bei der Suche nach -delete
wird beispielsweise die sehr wichtige WARNUNG weggelassen, die als zweiter Absatz unter dieser Überschrift enthalten ist.
My Es wird empfohlen, einen Standardaufruf an man
zu verwenden mit der Umgebungsvariablen LESS
. Ich verwende es ziemlich häufig in meinen Antworten auf dieser Site.
LESS="+/^[[:space:]]*-type" man find
Weitere Informationen zur Funktionsweise finden Sie unter:
LESS="+/^[[:space:]]*LESS " man less LESS="+/\+cmd" man less LESS="+/\/" man less
Wenn Sie die Option nur schnell und interaktiv in der Manpage finden möchten, lernen Sie, die Suchfunktionen von less
zu verwenden Siehe auch:
Kommentare
- Vielen Dank für die Veröffentlichung. Die Befehle in Ihrer Antwort haben die gesuchten Ergebnisse zurückgegeben. Ich werde eine Antwort nach ein oder zwei Tagen akzeptieren Bitte haben Sie etwas Geduld.
- @karel, kein Problem, ich ' bin sehr geduldig. 🙂 Ein wenig verwirrt: Ich weiß, dass Sie ' Starten Sie zwei Tage lang kein Kopfgeld für eine Frage, aber ich glaube, dass das Zeitlimit, bevor Sie eine Antwort akzeptieren können, nur etwa 15 Minuten beträgt.
-
man find | sed -n '/-type/,/^$/p'
bietet viel mehr als das, was Sie als es gepostet haben stimmt mit-type
irgendwo in der Zeile überein … arbeite selbst an einem kleinen Skript, um nach Mann oder Hilfe (für eingebaute) zu suchen, und verwende derzeitawk
die noch einige Macken zu lösen hat ..awk -v RS= -v rx="^\\\s*$arg\\\>" '$0 ~ rx' "$file"
wobeiarg
-type
in wäre In diesem Fall - Übrigens, @Sundeep, möchten Sie möglicherweise versuchen, die zugrunde liegenden
troff
-Dateien zu analysieren, die die ursprünglichen Manpage-Informationen mit Formatinformationen anstelle der Textausgabe enthalten des Befehlsman
. - @Sundeep, hier ' ist der Ausgangspunkt für Sie . (Folgen Sie unbedingt dem Link in dieser Antwort.) ' Es gibt viel zu wissen über
troff
. Pingen Sie mich im Chat an, wenn Sie mit dem Tauchen im Kaninchenbau fertig sind. 🙂
Antwort
Oder Weiterleitung an less
und Feed dass ein Suchbegriff:
man 1 find | less -p " -type"
(Dies kann fehlschlagen, je nachdem, was less
ist, z. B. wenn -type
wurde mit Backspaces fett gedruckt.)
Kommentare
- Pipe es durch
col -bx
zuerst.