View Single Post
Old 26-02-2017, 07:41   #24
vinny74
Junior Member
 
Iscritto dal: Aug 2007
Messaggi: 12
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

Ultima modifica di vinny74 : 26-02-2017 alle 07:45.
vinny74 è offline   Rispondi citando il messaggio o parte di esso