![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Tabeller til at søge at finde brugere til databasen fra shell script | Pinnacle | Shell Programmering og Scripting | 0 | 04-10-2009 06:18 PM |
| at finde, om opdatere forespørgslen er vellykket eller ikke bruger ksh Script | ali560045 | Shell Programmering og Scripting | 3 | 01-07-2009 01:41 AM |
| find-mtime query | Rajat | UNIX for dummyer Spørgsmål & svar | 1 | 07-09-2008 08:12 AM |
| forespørgsel om at finde og-exec | shriashishpatil | UNIX for Advanced & Ekspertsøgning Brugere | 2 | 04-12-2007 02:16 AM |
| find-Perm query | napolayan | UNIX for dummyer Spørgsmål & svar | 1 | 11-28-2006 02:28 PM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
finde og erstatte forespørgsel
Hello ppl,
Jeg skriver et script, der finder flere ord match og erstatte det med nye ord. Jeg har server.conf fil, der ser ud som Code:
### 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 ## Jeg har skrevet koden til det, som vist nedenfor Code:
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
Jeg ved ikke, hvad der galt med min kode. Kan nogen hjælpe mig på dette? Thanks in advance Sidst redigeret af lightdensity; 05-26-2009 på 01:14 PM.. |
|
||||
|
Citat:
Code:
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
tak |
|
||||
|
Citat:
så hvad nu hvis jeg indstille IFS \u003d "\ n \ t" end jeg gætte, cat $ FILE vil give linje for linje .. ok! Jeg vil prøve det .. I mellemtiden kan du tjekke min resterende kode .. og fortælle om min kode er korrekt eller ej. tak ![]() |
|
||||
|
Citat:
Men incase du skal gøre .. Jeg foreslår, du bruger, mens løkke, i stedet for et for loop med katten kommando. Code:
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
|
|
||||
|
Citat:
Din løsning værker bøde ... men jeg vender nyt problem nu ... Faktisk er jeg ikke har nævnt mit komplette inddatafil som er Code:
### 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 ## Code:
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
Code:
Server=0.0.0.0 ServerPort=1 Enable Server=0 Undskyld jeg generer dig meget ... tak ![]() |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|