[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: 3956
Iscritto il: lun apr 25, 2005 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

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

Messaggioda Paoletta » mar nov 11, 2008 10:42

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 mar 14, 2006 18:07
Nome Cognome: Rocco Aliberti
Slackware: 14.1-64bit
Kernel: 3.10.17
Desktop: xfce
Località: Salerno

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

Messaggioda d4z_c0nf » mar nov 11, 2008 11:01

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 2.6
Linux 2.6
Messaggi: 977
Iscritto il: gio set 01, 2005 0:00
Slackware: 12.0
Località: somewhere in the time

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

Messaggioda smtux » mar nov 11, 2008 14:03

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: 12773
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

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

Messaggioda conraid » mar nov 11, 2008 14:08

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 mar 14, 2006 18:07
Nome Cognome: Rocco Aliberti
Slackware: 14.1-64bit
Kernel: 3.10.17
Desktop: xfce
Località: Salerno

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

Messaggioda d4z_c0nf » mar nov 11, 2008 14:12

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


Torna a “Programmazione”

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti