Newsgroup: it.comp.os.linux.debian
Titolo: grep ?

 
Perchè se per cercare nell'help di linea di un comando cercando qualcosa 
con | grep -d mi dà errore ?
 
  ls --help | grep -a
Uso: grep [OPZIONE]... MODELLO [FILE]...
Usare "grep --help" per ulteriori informazioni.
 
 
dovrebbe cercare -a , ma non trova nulla.
Ho provato usando l'escaping com \ oppure " oppure ' , ma mi dà errore.
 
ls --help | grep \-a
Uso: grep [OPZIONE]... MODELLO [FILE]...
Usare "grep --help" per ulteriori informazioni.
 
 
Qualcuno ne sa qualcosa ?


Stessa cosa si ottiene con :
 
ls --help | "grep-a"  # oppure con
 
ls --help | 'grep -a'

 
ls --help | grep [-]a
 
 
 
-- 
Stefano L.
 

 ls --help | grep \-a
 
ls --help | grep -- -a
 
Anche se non esplicitamente documentato nell'help '--' indica la fine 
delle opzioni.  Quello che segue è da considerarsi come la stringa di 
cui fare la ricerca.
 
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >

 Qualcuno ne sa qualcosa ?
 
--premessa--
Non ti conviene grep, vai molto meglio con:
ls --help | less
 
e poi in less dai "/" e ci metti -a.
--/premessa--
 
Comunque per grep la cosa migliore in questi casi, secondo me, e'
semplicemente proteggere il - con \- *ma dicendolo a bash* con le
virgolette doppie | grep "\-a" o semplici | grep '\-a' ciao
 
-- 
Yoda
 


 
Ok, grazie.
Quanti modi ci sono:
 
ls --help | grep -- -a
	  | grep [-]a
	  | grep "\-a"
 
 
Ho cercato negli help e su google non trovando nulla.
 

 Giovanni
 
Questo non lo sapevo , grazie mille !!!
Siete dei grandi su questo NG .
 
Ciao Mario

 virgolette doppie | grep "\-a" o semplici | grep '\-a' ciao
 
Non lo sapevo.
Ho provato tutte le combinazioni con grep \-a , grep "-a" , grep "-"a , etc.
 
Praticamente occorre proteggere il carattere - 2 volte

 
 
 
-- 
 
 
----Android NewsGroup Reader----
http://usenet.sinaapp.com/
 

 Perch� non � documentato?
 
Diversamente da altri programmi, ne l'help ne le man pages di ls 
riportano questa possibilità fra le opzioni.  Ma l'uso di "--" per 
terminare la gestione delle opzioni è descritto dagli standard POSIX.


 
Questo è un aforisma molto vero e che fa riflettere, quando si
 apre quella finestra, entra l'aria dell'ignoranza , dei paraocchi
 e della dipendenza da droga.


 Dove si possono reperire più informazioni sullo standard POSIX  ?
 
Qui:
 
https://www.techstreet.com/ieee/searches/25760861
 
 
Atetnzione: è necessaria una carta di credito a banda larga.
 
 
  Ciao,
 
 
Alessandro
 
 

 virgolette doppie | grep "\-a" o semplici | grep '\-a' ciao
 
  No, il problema non è causato dalla bash che modifica la riga di
comando prima di mandare in esecuzione grep, è grep che interpreta -a
come fosse un'opzione invece che come l'espressione regolare da utilizzare.
 
 
  Ciao,
 
 
Alessandro
 

 utilizzare.
 
Si', questo per me era chiarissimo; pero' non son sicuro se mi sono
espresso male o se non ho capito in modo completo. Vediamo.
 
Bash apre la pipe; chiama grep e.. COSA gli da' nei due casi?
PRIMO CASO
$: ls --help | grep -a
$: ls --help | grep \-a
$: ls --help | grep "-a"
bash lancia grep come fosse con una riga di comando cosi':
grep -a /vmlinuz
che e' quello che mi dici: opz=-a regex=nessuna file=kernel
 
SECONDO CASO
$: ls --help | grep "\-a"
$: ls --help | grep '\-a'
la riga adesso equivale a:
grep \\-a /vmlinuz
cioe': opz=nessuna regex=\-a file=kernel
(che tra parentesi <<ls --help | grep \\-a>> e' un'ulteriore riga
per Mario, forse la migliore! certo la piu' veloce con tastiera usa)
 
* * *
 
Voglio dire, cioe', che anche se do direttamente:
$: grep \-a /vmlinuz
 
bash passa a grep il -a come opzione, perche' la protezione e' rivolta
alla bash (cfr. ad esempio: "echo \-e", che da' newline e basta proprio
come fosse "echo -e"):
$: grep \-a /vmlinuz  ->  grep riceve -a.
 
Mentre invece con le virgolette e' bash che interpreta il -a come
stringa da passare a grep:
$: grep "\-a" /vmlinuz  ->  grep riceve \-a.
 
lo stesso proteggendo la protezione:
$: grep \\-a /vmlinuz  ->  grep \-a  ciao e fammi sapere se e' OK
 
-- 
Yoda
 

 Oltretutto grep -- è interpretato dal programma grep e non della shell.
 
$ man bash
 
...
--        A -- signals the end of options and disables further option
processing.  Any arguments after the -- are treated as filenames and
arguments.
...
 

Il 26/11/19 13:02, Alessandro Pellizzari ha scritto:

  Certo, anche la bash usa la convenzione che -- indica la fine delle
opzioni.  Il che non toglie che nella riga:
 
ls --help | grep -- -a
 
la bash non altera minimamente il doppio trattino, che è quindi visibile
a grep che ne fa quello che fa anche la bash quando lo vede come una
*sua* opzione.
 
 
  Ciao,
 
 
Alessandro