![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui. |
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| Tabelle di ricerca per trovare gli utenti per il database da script di shell | pinnacle | Shell scripting e di programmazione | 0 | 04-10-2009 06:18 PM |
| per trovare l'aggiornamento di query se è successo o che non utilizzano script ksh | ali560045 | Shell scripting e di programmazione | 3 | 01-07-2009 01:41 AM |
| find-mtime query | Rajat | UNIX for Dummies Domande & Risposte | 1 | 07-09-2008 08:12 AM |
| query di ricerca e su-exec | shriashishpatil | UNIX e avanzata per utenti esperti | 2 | 04-12-2007 02:16 AM |
| trovare query-perm | napolayan | UNIX for Dummies Domande & Risposte | 1 | 11-28-2006 02:28 PM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
trovare e sostituire query
Ciao ppl, Sto scrivendo uno script che trova più parole partita e sostituirlo con nuove parole. Ho server.conf file che si presenta come Codice:
### Welcome to server ### ### Server address and port ### Server=127.0.0.1 ### Replace Server=0.0.0.0 ### ServerPort=0 ### Replace ServerPort=1 #### ### Enable Server ## Enable Server=1 ### Replace Enable Server=0 ### ### END OF FILE ## -------------------------------------------------- --------- Ho scritto il codice per come illustrato di seguito Codice:
FILE="/opt/server.conf"
NEW_FILE="/opt/new_server.conf"
IFS=""
for line in `cat ${FILE}`; do
#echo ${line}
if [ -n "`echo ${line} | grep 'Server=127.0.0.1'`" ]
then
echo ${line} | sed 's|Server=127.0.0.1|Server=0.0.0.0|g' >>$NEW_FILE
elif [ -n "`echo ${line} | grep 'ServerPort=0'`" ]
then
echo ${line} | sed 's|ServerPort=0|ServerPort=1|g' >>$NEW_FILE
elif [ -n "`echo ${line} | grep 'Enable Server=1'`" ]
then
echo ${line} | sed 's|Enable Server=1|Enable Server=0|g' >>$NEW_FILE
else
echo ${line} >>$NEW_FILE
fi
done
Ma quando ho eseguito il mio script si sostituisce solo la prima partita (Server \u003d 0.0.0.0). Restanti due partite doesnt cambiamento. Non so che cosa non va con il mio codice. Can anyone help me su questo? Grazie in anticipo Ultimo a cura di lightdensity; al 05/26/2009 01:14 PM.. |
|
||||
|
Citazione:
Codice:
FILE="/opt/server.conf"
NEW_FILE="/opt/new_server.conf"
IFS=""
for line in `cat ${FILE}`; do
#echo ${line}
if [ -n "`echo ${line} | grep 'Server=127.0.0.1'`" ] #grep command searches for right string
then
echo ${line} | sed 's|Server=127.0.0.1|Server=0.0.0.0|g' >>$NEW_FILE
elif [ -n "`echo ${line} | grep 'ServerPort=0'`" ]
then
echo ${line} | sed 's|ServerPort=0|ServerPort=1|g' >>$NEW_FILE
elif [ -n "`echo ${line} | grep 'Enable Server=1'`" ]
then
echo ${line} | sed 's|Enable Server=1|Enable Server=0|g' >>$NEW_FILE
else
echo ${line} >>$NEW_FILE
fi
done
Allora, come per scoprire che per la stringa di destra? grazie |
|
||||
|
Citazione:
se sì, quali i set IFS \u003d "\ n \ t" Immagino che, cat $ FILE darà riga per riga .. ok! i cercherà it out .. nel frattempo si potrebbe verificare il mio codice restanti .. e dire se il mio codice è corretto o meno. grazie ![]() |
|
||||
|
Citazione:
Ma in caso avete bisogno di fare .. ti suggerisco di usare mentre loop, invece di un ciclo for con il comando cat. Codice:
FILE="/opt/server.conf"
NEW_FILE="/opt/new_server.conf"
while read line
do
#echo ${line}
if [ -n "`echo ${line} | grep 'Server=127.0.0.1'`" ] #grep command searches for right string
then
echo ${line} | sed 's|Server=127.0.0.1|Server=0.0.0.0|g' >>$NEW_FILE
elif [ -n "`echo ${line} | grep 'ServerPort=0'`" ]
then
echo ${line} | sed 's|ServerPort=0|ServerPort=1|g' >>$NEW_FILE
elif [ -n "`echo ${line} | grep 'Enable Server=1'`" ]
then
echo ${line} | sed 's|Enable Server=1|Enable Server=0|g' >>$NEW_FILE
else
echo ${line} >>$NEW_FILE
fi
done < $FILE
-Devaraj Takhellambam |
|
||||
|
Citazione:
La tua soluzione funziona bene ... ma io sono di fronte a nuove problema adesso ... In realtà non ho menzionato il mio completo file di input che è Codice:
### Welcome to server ### ### Server address and port ### Server=127.0.0.1 ### Replace Server=0.0.0.0 ### ServerPort=0 ### Replace ServerPort=1 #### ### Enable Server ## Enable Server=1 ### Replace Enable Server=0 ### Enable Agent=1 Enable ip=1 ### Now I dont need to change above two options ### ### END OF FILE ## Quindi quello che ho attuato simile Codice:
FILE="/opt/server.conf"
NEW_FILE="/opt/new_server.conf"
exec 0<$FILE
while read line
do
#echo ${line}
if [ -n "`echo ${line} | grep 'Server=127.0.0.1'`" ] #grep command searches for right string
then
echo ${line} | sed 's|Server=127.0.0.1|Server=0.0.0.0|g' >>$NEW_FILE
elif [ -n "`echo ${line} | grep 'ServerPort=0'`" ]
then
echo ${line} | sed 's|ServerPort=0|ServerPort=1|g' >>$NEW_FILE
elif [ -n "`echo ${line} | grep 'Enable Server=1'`" ]
then
echo ${line} | sed 's|Enable Server=1|Enable Server=0|g' >>$NEW_FILE
else
echo ${line} >>$NEW_FILE
fi
done < $FILE
File di output simile a Codice:
Server=0.0.0.0 ServerPort=1 Enable Server=0 Così, quando i miei eseguire codice, file di output contiene solo le stringhe che ho cambiato, ci sono alcune sequenze che i desidera copiare come. Mi dispiace molto fastidio che si ... grazie
|
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|