|
|
|
|
Google Site
|
|||||||
| Forums | S'inscrire | Blog | Man Pages | Forum Rules | Liens | Albums | FAQ | Utilisateurs | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
![]() |
|
|
Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|||
|
requête de recherche et de remplacement
Bonjour ppl, Je suis en train d'écrire un script qui trouve plusieurs mots match et de le remplacer par de nouveaux mots. J'ai server.conf fichier qui ressemble à 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 ## -------------------------------------------------- --------- J'ai écrit le code pour elle, comme indiqué ci-dessous 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
doneMais quand je utiliser mon script, il ne remplace que le premier match (Server \u003d 0.0.0.0). Deux autres matches doesnt changement. Je ne sais pas ce problème avec mon code. Quelqu'un peut-il m'aider sur ce sujet? Merci d'avance Dernière édition par lightdensity; au 05.26.2009 01:14 PM.. |
| Liens Sponsorisés |
|
|
|
|||
|
Citation:
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
doneAlors, comment savoir à qui le droit de chaîne? merci |
|
|||
|
Citation:
so what if i ensemble IFS \u003d "\ n \ t" Je suppose que, cat $ FILE fera ligne par ligne .. ok! i will try it out .. temps, pourriez-vous vérifier mon solde de code .. et de dire si mon code est correct ou non. merci ![]() |
|
|||
|
Citation:
Mais en cas que vous avez à faire .. Je vous suggère d'utiliser tout en boucle, au lieu d'une boucle avec la commande cat. 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-Devaraj Takhellambam |
|
|||
|
si vous avez Python Code:
#!/usr/bin/env python
import fileinput
d={ "Server":"0.0.0.0", "ServerPort":"1", "Enable Server":"0" }
for line in fileinput.FileInput("file",inplace=1):
line=line.strip()
if not line.startswith("#") and line!="":
line=line.split("=")
print line[0]+"="+d[line[0]]
else:
print linesortie Code:
# ./test.py # more file ### Welcome to server ### ### Server address and port ### Server=0.0.0.0 ### Replace Server=0.0.0.0 ### ServerPort=1 ### Replace ServerPort=1 #### ### Enable Server ## Enable Server=0 ### Replace Enable Server=0 ### ### END OF FILE ## |
| Liens Sponsorisés |
|
|
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| Tableaux à la requête de trouver des utilisateurs pour la base de données à partir de scripts shell | pinnacle | De programmation et de script Shell | 0 | 04-10-2009 06:18 PM |
| pour déterminer si la requête de mise à jour est réussie ou non en utilisant Ksh Script | ali560045 | De programmation et de script Shell | 3 | 01-07-2009 01:41 AM |
| find-mtime requête | Rajat | UNIX pour les nuls Questions et réponses | 1 | 07-09-2008 08:12 AM |
| question à propos de trouver et-exec | shriashishpatil | UNIX for Advanced & Expert Users | 2 | 04-12-2007 02:16 AM |
| trouvez-perm requête | napolayan | UNIX pour les nuls Questions et réponses | 1 | 11-28-2006 02:28 PM |