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 derzeit awk die noch einige Macken zu lösen hat .. awk -v RS= -v rx="^\\\s*$arg\\\>" '$0 ~ rx' "$file" wobei arg -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 Befehls man.
  • @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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.