Aggiunta di una riga con sed
Moderatore: Staff
Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
-
- Staff
- Messaggi: 5511
- Iscritto il: ven 16 gen 2004, 0:00
- Nome Cognome: Mauro Sacchetto
- Slackware: 13.0
- Kernel: 2.26
- Desktop: KDE
- Distribuzione: anche Debian
- Località: Venezia
Aggiunta di una riga con sed
Devo aggiungere la riga
Map ulg.map
al file /usr/local/texlive/texmf-local/web2c/updmap-local.cfg
Mi va benissimo che la piazzi alla fine.
Posto che prima ho messo
BASEDIR=/usr/local/texlive/texmf-local
la stringa
sed -i 's/Map ugl.map/' $BASEDIR/web2c/updmap-local.cfg
mi dà errore:
sed: espressione -e #1, carattere 14: comando `s' non terminato
Dove ho sbagliato?
Grazie
M.
Map ulg.map
al file /usr/local/texlive/texmf-local/web2c/updmap-local.cfg
Mi va benissimo che la piazzi alla fine.
Posto che prima ho messo
BASEDIR=/usr/local/texlive/texmf-local
la stringa
sed -i 's/Map ugl.map/' $BASEDIR/web2c/updmap-local.cfg
mi dà errore:
sed: espressione -e #1, carattere 14: comando `s' non terminato
Dove ho sbagliato?
Grazie
M.
- targzeta
- Iper Master
- Messaggi: 6631
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: Aggiunta di una riga con sed
Il comando 's' di sed sta per 'sostituisci', tu non li hai detto di sostituire niente. Se vuoi semplicemente aggiungere la riga alla fine del file puoi anche usare:non vedo perchè disturbare sed .
Emanuele
Codice: Seleziona tutto
echo 'Map ulg.map' >> $BASEDIR/web2c/updmap-local.cfg
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
-
- Packager
- Messaggi: 1339
- Iscritto il: sab 27 mar 2004, 0:00
- Slackware: current
- Desktop: fluxbox.git
- Località: Collegno, but made in Friûl
- Contatta:
Re: Aggiunta di una riga con sed
Rispondo comunque per completezza, visto che la necessità di inserire una riga in fondo al file - come dice spina - la soddisfi già con l'operatore ">>".
Per aggiungere delle righe con sed devi usa il comando append "a" o il comando insert "i" invece del comando sostituisci "s".
Dunque la sintassi è la seguente:
Dove a <NN> va sostituito il numero di riga, oppure un pattern da individuare nel file. Esempi pratici applicati ad un file del tipo:
sed -i '1a STRINGA' produce:
sed -i '1i STRINGA' produce:
sed -i '/10/a STRINGA' produce:
E via dicendo...
In questo specifico caso, <NN> posto pari a $ indica l'ultima riga del file.
Per aggiungere delle righe con sed devi usa il comando append "a" o il comando insert "i" invece del comando sostituisci "s".
Dunque la sintassi è la seguente:
Codice: Seleziona tutto
sed -i '<NN>a <STRING>'
Codice: Seleziona tutto
10
20
30
Codice: Seleziona tutto
10
STRINGA
20
30
Codice: Seleziona tutto
STRINGA
10
20
30
Codice: Seleziona tutto
10
STRINGA
20
30
In questo specifico caso, <NN> posto pari a $ indica l'ultima riga del file.
-
- Staff
- Messaggi: 5511
- Iscritto il: ven 16 gen 2004, 0:00
- Nome Cognome: Mauro Sacchetto
- Slackware: 13.0
- Kernel: 2.26
- Desktop: KDE
- Distribuzione: anche Debian
- Località: Venezia
Re: Aggiunta di una riga con sed
Sì, poi mi ero accorto della cavolata che avevo fatto.
E inoltre mancava il reindirizzamento al file.
Solo una cosa, tanto per complicare un po' le cose:
se volessi in pratica dire:
aggiungi questa riga, se no c'è già?
Nel senso che, dovendo ad es reinstallare un font,
mi troverei il file di configurazione con tante righe
uguali quante reinstallazioni ho fatto..
Mille grazie
M.
E inoltre mancava il reindirizzamento al file.
Solo una cosa, tanto per complicare un po' le cose:
se volessi in pratica dire:
aggiungi questa riga, se no c'è già?
Nel senso che, dovendo ad es reinstallare un font,
mi troverei il file di configurazione con tante righe
uguali quante reinstallazioni ho fatto..
Mille grazie
M.
- targzeta
- Iper Master
- Messaggi: 6631
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: Aggiunta di una riga con sed
Ti posto due modi:mentre con sed:
Emanuele
Codice: Seleziona tutto
! grep -q stringa_da_cercare nome_file && echo stringa_da_inserire >> nome_file
Codice: Seleziona tutto
sed -i '/stringa_da_cercare/b found;$a\
stringa_da_inserire
p;d;:found n; b found' nome_file
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
-
- Staff
- Messaggi: 5511
- Iscritto il: ven 16 gen 2004, 0:00
- Nome Cognome: Mauro Sacchetto
- Slackware: 13.0
- Kernel: 2.26
- Desktop: KDE
- Distribuzione: anche Debian
- Località: Venezia
Re: Aggiunta di una riga con sed
Ottima la prima, visto che all afine avevo fatto con echo
E buona a sapersi la seconda...
Milla grazie
M.
E buona a sapersi la seconda...
Milla grazie
M.
- Linpassion
- Linux 2.x
- Messaggi: 337
- Iscritto il: mar 30 ott 2012, 11:17
- Slackware: 14.2
- Desktop: xfce, fluxbox
Re: Aggiunta di una riga con sed
nn so se puo funzionanre una cosa tipo
echo stringa da aggiungere >> nome del file
echo stringa da aggiungere >> nome del file