![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Tabeller som sökfråga för att hitta användare för databasen från shell script | Pinnacle | Shell-programmering och Skript | 0 | 04-10-2009 05:18 |
| att hitta om uppdateringen sökfråga är framgångsrika eller inte använder ksh Script | ali560045 | Shell-programmering och Skript | 3 | 01-07-2009 01:41 |
| hitta-mtime query | Rajat | UNIX for Dummies Frågor & Svar | 1 | 07-09-2008 07:12 |
| förfrågan om att hitta och-exec | shriashishpatil | UNIX för avancerade & Expertanvändare | 2 | 04-12-2007 01:16 |
| hitta-perm query | napolayan | UNIX for Dummies Frågor & Svar | 1 | 11-28-2006 02:28 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Sök och ersätt query
Hej ppl,
Jag skriver ett script som hittar flera ord matchen och ersätta det med nya ord. Jag har server.conf fil som ser ut som Kod:
### 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 ## Jag har skrivit kod för det som visas nedan Kod:
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
Jag vet inte vad för fel med min kod. Kan någon hjälpa mig med detta? Tack på förhand Senast redigerad av lightdensity; 05-26-2009 vid 12:14.. |
|
||||
|
Citat:
Kod:
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
tack |
|
||||
|
Citat:
så vad händer om jag IFS \u003d "\ n \ t" än jag, cat $ FILE ger rad för rad .. ok! Jag ska prova det .. Under tiden kan du kolla mina återstående nummer .. och berätta om mina nummer är korrekt eller inte. tack ![]() |
|
||||
|
Citat:
Men Incase du behöver göra .. Jag föreslår att du använder samtidigt loop i stället för en för slinga med katt kommando. Kod:
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 fungerar bra ... men jag inför nya problem nu ... Faktiskt jag inte nämnt min fullständiga indatafilen som är Kod:
### 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 ## Kod:
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
Kod:
Server=0.0.0.0 ServerPort=1 Enable Server=0 Ursäkta jag stör er mycket ... tack ![]() |