[bash] usare awk come wrapper file di testo

Forum dedicato alla programmazione.

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.
Avatar utente
Paoletta
Staff
Staff
Messaggi: 3974
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Re: [bash] usare awk come wrapper file di testo

Messaggio da Paoletta »

smtux ha scritto:domanda:
con awk sarebbe possibile riscrivere l'ipaddress nel file di configurazione della lan?
Intendo quel file che viene letto allo startup della rete.
supponendo che l'indirizzo ip che ti interessa stia in $ip e che ti interessi settare
eth0 con sed puoi fare qualcosa del genere:

Codice: Seleziona tutto

sed  "s/IPADDR\[0\]=\"\"/IPADDR\[0\]=\"$ip\"/" -i /etc/rc.d/rc.inet1.conf
e sei a posto; credo che la stessa cosa si possa fare tranquillamente anche con awk

Avatar utente
d4z_c0nf
Packager
Packager
Messaggi: 1296
Iscritto il: mar 14 mar 2006, 18:07
Nome Cognome: Rocco Aliberti
Slackware: 14.2-current64
Kernel: 4.14.73
Desktop: awesomeWM
Località: Pinerolo

Re: [bash] usare awk come wrapper file di testo

Messaggio da d4z_c0nf »

Paoletta ha scritto:
smtux ha scritto:domanda:
con awk sarebbe possibile riscrivere l'ipaddress nel file di configurazione della lan?
Intendo quel file che viene letto allo startup della rete.
supponendo che l'indirizzo ip che ti interessa stia in $ip e che ti interessi settare
eth0 con sed puoi fare qualcosa del genere:

Codice: Seleziona tutto

sed  "s/IPADDR\[0\]=\"\"/IPADDR\[0\]=\"$ip\"/" -i /etc/rc.d/rc.inet1.conf
e sei a posto; credo che la stessa cosa si possa fare tranquillamente anche con awk
Per completezza, Paoletta ti ha fatto il caso in cui IPADDR[0] non sia settato, nel caso in cui sia settato o meno, la stessa linea diventa

Codice: Seleziona tutto

sed  "s/IPADDR\[0\]=\".*\"/IPADDR\[0\]=\"$ip\"/" -i /etc/rc.d/rc.inet1.conf
rock

smtux
Linux 3.x
Linux 3.x
Messaggi: 977
Iscritto il: gio 1 set 2005, 0:00
Slackware: 12.0
Località: somewhere in the time

Re: [bash] usare awk come wrapper file di testo

Messaggio da smtux »

grazie mille.


curiosità: a cosa serve [0\] dopo il tag?



PS: ho visto che con awk devo usare la funzione gsub.

Avatar utente
conraid
Staff
Staff
Messaggi: 13484
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: [bash] usare awk come wrapper file di testo

Messaggio da conraid »

smtux ha scritto:grazie mille.


curiosità: a cosa serve [0\] dopo il tag?
\[0\] dice a sed di prendere la prima scheda di rete, ce ne sono più di una da poter configurare
Se vuoi modificare la seconda (normalmente eth1 per esempio) cambi \[0\] con \[1\]

Avatar utente
d4z_c0nf
Packager
Packager
Messaggi: 1296
Iscritto il: mar 14 mar 2006, 18:07
Nome Cognome: Rocco Aliberti
Slackware: 14.2-current64
Kernel: 4.14.73
Desktop: awesomeWM
Località: Pinerolo

Re: [bash] usare awk come wrapper file di testo

Messaggio da d4z_c0nf »

smtux ha scritto:grazie mille.


curiosità: a cosa serve [0\] dopo il tag?



PS: ho visto che con awk devo usare la funzione gsub.
che intendi per tag?...
in rc.inet1.conf la linea dell'ip è del tipo
IPADDRESS[0]=" o IPADDRESS[1]=" ecc ecc
se invece stai chiedendo a che serve \[ o \], come negl'altri casi, e per "dire" a sed di trattare quel carattere (dopo il backslash), come un carattere normale.
rock

Rispondi