Ciao scusate visto che qui si parla di scripting sto cercando di farne uno che tramite grep e sed o awk elimini delle righe specifiche all'interno di un file.
Dato il file di esempio file.user.
Il file è così composto:
Codice:
[account]
user = ciao
password = 3
[account]
user = prova
password = hey
log = /home/prova/prova.log
[account]
user = pernoi
Come si vede l'unica vera costante nel file è la stringa [account] e tramite varie guide e un po di prove ho scritto questa riga che mi consente di creare un array con le righe dove è presente [account]
Codice:
RIGHE=($(grep -n "\[account\]" file.user | sed 's/:.*//'))
Adesso dovrei scrivere qualcosa che dato l'array controlli se nell'intervallo tra il primo indice e il secondo è presente l'user prova, se non lo trova esegue il controllo tra il secondo indice ed il terzo e così via.
Se lo trova cancella tutte le righe comprese nell'intervallo tranne l'ultima, ovvero nel file di esempio deve cancellare tutte le righe dalla 5 alla 9.
Avevo pensato a sed ma non riesco a capire come dirgli di controllare se esiste una determinata stringa in un intervallo di righe.
Spero di essermi spiegato bene.
Grazie