Ricerche globali
Sintassi:
[range]g/espr_reg/[comando]
- Applicato a tutte le linee di range
- Lista (inizio,fine) come in ed o espressione regolare
- Ricerca espr_reg un'espressione regolare
- Esegue il comando specificato
p
- mostra le righe trovate#
- mostra le righe col numero di rigad
- cancella le righe trovatey
- copy (yank) delle righe trovatenormal
comando - esegue il comando esteso vi su ogni riga trovata
Esempi
g/the$/p
- Mostra tutte le righe che terminano con the
.,$g/^ *pippo/#
- Dalla riga corrente a fine file mostra i numeri e le righe contenenti pippo dopo un qualsiasi numero di spazi da inizio riga
g/^$/d
- Cancella tutte le righe vuote
1,/^Examples/g/^Section/+y
- Da inizio file alla riga che comincia con Examples copia la linea dopo quella che inizia con Section
g/^Section/normal ONew
- Trova tutte le righe che cominciano con Section e aggiungi prima di esse una riga contenente New
Il comando g/Regular_Expression/p
è così usato e utile, che è diventato il comando linux grep
.
Sostituzioni globali
Sintassi:
[range]s/espr_reg/str_rimpiazzo/[flags][conto]
- Applicato a tutte le linee di range
- Lista (inizio,fine) o espressione regolare
- Ricerca espr_reg, un'espressione regolare
- La sostituisce con la stringa di rimpiazzo
- Secondo le modalità dei flags
c
- chiede confermai
- ignora caseI
- obbedisce al case (default)n
- non esegue la sostituzionep
- stampa solo le linee trovate (non è necessaria la stringa di rimpiazzo)
- Esegue conto volte (default una)
n
- (numero) volteg
- ogni volta sulla linea