devo eliminare un testo che è scritto su più righe da un file che lo contiene al suo interno... nessuno ha qualche idea? serve per una futura versione di gslacky installer...
Moderatore: Staff

submax82 ha scritto:tutte le volte che utilizzo sed per cose che non siano banali ci litigo!![]()
devo eliminare un testo che è scritto su più righe da un file che lo contiene al suo interno... nessuno ha qualche idea? serve per una futura versione di gslacky installer...


mauro ha scritto:@mario: magari il testo da eliminare e' localizzato su righe diverse da file a file, e se sono tanti non e' il caso di editarli uno per uno.
@submax82: non ho capito... non e' che puoi postare un esempio? il testo e' sempre lo stesso o lo identifichi in base a qualcosa di specifico?

mauro ha scritto:@mario: magari il testo da eliminare e' localizzato su righe diverse da file a file, e se sono tanti non e' il caso di editarli uno per uno.
@submax82: non ho capito... non e' che puoi postare un esempio? il testo e' sempre lo stesso o lo identifichi in base a qualcosa di specifico?
## Added by Gnome-Slacky 2.20.3 ##
if [ -x /etc/rc.d/rc.gnome ]; then
. /etc/rc.d/rc.gnome
fi

submax82 ha scritto:mauro ha scritto:@mario: magari il testo da eliminare e' localizzato su righe diverse da file a file, e se sono tanti non e' il caso di editarli uno per uno.
@submax82: non ho capito... non e' che puoi postare un esempio? il testo e' sempre lo stesso o lo identifichi in base a qualcosa di specifico?
mi serve nella rimozione di gslacky per rimuovere queste righe da /etc/rc.d/rc.local## Added by Gnome-Slacky 2.20.3 ##
if [ -x /etc/rc.d/rc.gnome ]; then
. /etc/rc.d/rc.gnome
fi
mi piacerebbe un metodo con sed che indichi proprio espressamente il paragrafo da eliminare... non mi piace la soluzione a base del numero di riga...


submax82 ha scritto:non c'è una soluzione che mi permette di indicare proprio la stringa esatta ? senza +3 ecc... (anche quella però pensandoci non è male...)

Mario Vanoni ha scritto:Rileggi il mio post precedente, mettile in un file.
ATTENTI: con frasi uguali in il_file_che_vuoi, GUAI IN VISTA !!!
Un file con tutto il testo che vuoi eliminare,
ad ogni riga aggiungi all'inizio
/^
alla fine della riga
$/d
chiamalo magari file.sed
poi
sed -f file.sed il_file_che_vuoi
fi
submax82 ha scritto:...
## Added by Gnome-Slacky 2.20.3 ##
if [ -x /etc/rc.d/rc.gnome ]; then
. /etc/rc.d/rc.gnome
fi

sed -n '/## Added by Gnome-Slacky 2.20.3 ##/{n;b BECCATO;};p;d;:BECCATO /fi/d;;n;b BECCATO' nome_file
.
sed -i `grep -n "## Added by Gnome-Slacky 2.20.3 ##"|cut -d':' -f1`,$((`grep -n "## Added by Gnome-Slacky 2.20.3 ##"|cut -d':' -f1` + 3))d nome_filen=`grep -n "## Added by Gnome-Slacky 2.20.3 ##"|cut -d':' -f1`
sed -i $n,$((n + 1))d nome_file
submax82 ha scritto:mi serve nella rimozione di gslacky per rimuovere queste righe da /etc/rc.d/rc.local
)
sid77 ha scritto:in teoria la modifica di rc.local non dovrebbe avvenire esclusivamente per mano dell'amministratore?
se hai bisogno di eseguire degli script all'avvio è decisamente meglio modificare rc.M e presentarlo come rc.M.new (oppure rc.S, ma non credo serva per GNOME)


conraid ha scritto:Mario Vanoni ha scritto:Rileggi il mio post precedente, mettile in un file.
Rileggendo il tuo post mi è venuto un dubbio.
tu diciATTENTI: con frasi uguali in il_file_che_vuoi, GUAI IN VISTA !!!
e primaUn file con tutto il testo che vuoi eliminare,
ad ogni riga aggiungi all'inizio
/^
alla fine della riga
$/d
chiamalo magari file.sed
poi
sed -f file.sed il_file_che_vuoi
Se devo specificare riga per riga, mi toglie tutte le righe
- Codice: Seleziona tutto
fi
del codice sopra, o sbaglio?

Visitano il forum: Nessuno e 0 ospiti