Când grep pagina de manual a comenzii find se potrivește cu type returnează o mulțime de rezultate ale căutării pe care nu le doresc. În schimb, vreau să folosesc o comandă care returnează numai rezultatele căutării pentru -type.

Comanda man find | grep -type nu funcționează. Revine:

grep: invalid option -- "t" 

Comentarii

  • Doriți doar liniile individuale ale paginii man formatate care conțin șirul -type, sau doriți, să zicem, întregul paragraf sau două care descriu ceea ce face -type?
  • Vreau să știu cum să o fac în ambele sensuri, căutarea pentru liniile individuale care conțin șirul -type ar fi suficientă pentru modul în care caut de obicei paginile man întregul paragraf sau două care descriu ceea ce face -type ar fi foarte util să se facă cel puțin o dată.
  • BTW, dacă vizualizarea unei pagini web este o alternativă, Idan Kamara de la explicațiihell.com a făcut o treabă excelentă de a extrage porțiunile de pagini de man care descriu opțiunile de comandă. Vedeți, de exemplu, explicahell.com/explain?cmd=find+-type+f pentru a vedea exact ceea ce -type opțiunea nu.

Răspuns

Dacă doriți să grep pentru un model care începe cu o cratimă, utilizați -- înainte de modelul pe care îl specificați.

man find | grep -- -type 

Dacă doriți mai multe informații, de exemplu întreaga secțiune care descrie o opțiune , ați putea încerca să utilizați 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. 

Cu toate acestea, acest lucru nu va funcționa pentru fiecare opțiune pe care ați putea să o căutați. De exemplu, :

$ man find | sed -n "/^[[:space:]]*-type/,/^$/p" -type c File is of type c: 

Nu este foarte util. Mai rău, pentru unele opțiuni ați putea fi înșelați să credeți că „ați citi întregul text despre opțiune atunci când nu ați avut cu adevărat” t. De exemplu, căutarea -delete omite AVERTISMENTUL foarte important conținut ca un paragraf al doilea sub titlul respectiv.


My recomandarea este să utilizați un apel standard către man cu LESS set de variabile de mediu. Îl folosesc destul de frecvent în răspunsurile mele de pe acest site.

LESS="+/^[[:space:]]*-type" man find 

Pentru a afla mai multe despre cum funcționează acest lucru, consultați:

LESS="+/^[[:space:]]*LESS " man less LESS="+/\+cmd" man less LESS="+/\/" man less 

Dacă doriți doar să găsiți opțiunea rapid și interactiv în pagina manuală, învățați să utilizați funcțiile de căutare less„. Și vezi și:

Comentarii

  • Vă mulțumim că ați postat. Comenzile din răspunsul dvs. au returnat rezultatele pe care le căutam. Voi accepta un răspuns după o zi sau două, deci te rog să ai răbdare.
  • @karel, nicio problemă, ' sunt foarte răbdător. 🙂 Un pic nedumerit, totuși: știu că poți nu începeți o recompensă pentru o întrebare timp de două zile, dar cred că termenul limită înainte de a putea accepta un răspuns este de aproximativ 15 minute.
  • man find | sed -n '/-type/,/^$/p' oferă mult mai mult decât ceea ce ați postat se va potrivi cu -type oriunde în linie … lucrez eu la un script mic pentru a căuta omul sau pentru a ajuta (pentru builtin) și folosesc în prezent awk care mai are puține ciudățenii de rezolvat .. awk -v RS= -v rx="^\\\s*$arg\\\>" '$0 ~ rx' "$file" unde arg ar fi -type în în acest caz
  • BTW, @Sundeep, poate doriți să încercați să analizați fișierele troff care conțin informațiile originale ale paginii man cu informații despre format, în loc de ieșirea textului a comenzii man.
  • @Sundeep, aici ' este punctul de plecare pentru dvs. . (Asigurați-vă că urmați legătura din răspunsul respectiv.) Există ' MULTE de aflat despre troff. Pipe-mă în chat când termini să scufunzi în gaura de iepure. 🙂

Răspuns

Sau trimiteți la less și alimentați că un termen de căutare:

man 1 find | less -p " -type" 

(Acest lucru poate eșua în funcție de exact ceea ce less este alimentat, de exemplu, dacă -type a fost îngroșat cu backspaces.)

Comentarii

  • Introduceți-l prin col -bx mai întâi.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *