The UNIX and Linux Forums  

Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
Táblázatok a lekérdezést, hogy a felhasználók az adatbázis shell script Pinnacle Shell programozás és Scripting 0 04-10-2009 06:18 PM
meg, hogy sikeres lekérdezés frissítése, vagy nem használ KSH Script ali560045 Shell programozás és Scripting 3 01-07-2009 01:41 AM
megtalálják-mtime query Rajat A UNIX a dummies Kérdések és válaszok 1 07-09-2008 08:12 AM
query about megtalálni és-exec shriashishpatil A UNIX a fejlett és szakértői Felhasználók 2 04-12-2007 02:16 AM
megtalálják-perm query napolayan A UNIX a dummies Kérdések és válaszok 1 11-28-2006 02:28 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 05-26-2009
lightdensity lightdensity is offline
Regisztrált felhasználó
  
 

Join Date: May 2009
Hozzászólások: 6
keresést és cserét query

Hello ppl,

Írok egy forgatókönyvet, amely megállapítja, több szó egyezik és a helyébe új szavakat.
Van server.conf fájl külleme

Kód:
### 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 ##

-------------------------------------------------- ---------
Írtam a kódot, hogy az alább látható

Kód:
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

De amikor én szkript fut csak helyettesíti az első mérkőzés (Server \u003d 0.0.0.0). A fennmaradó két mérkőzés doesnt változás.
Nem tudom, mi baj van az én-kódot.

Tud akárki segítsen nekem ezzel?
Köszi előre

Last edited by lightdensity; 05/26/2009 at 01:14 PM..
  #2 (permalink)  
Old 05-26-2009
devtakh devtakh is offline
Regisztrált felhasználó
  
 

Join Date: Oct 2007
Helyszín: Bangalore
Posts: 514

Kód:
sed '/Server=127.0.0.1/{s//Server=0.0.0.0/g}
/ServerPort=0/{s//ServerPort=1/g}
/Enable Server=1/{s//Enable Server=0/g}
' /opt/server.conf > /opt/new_server.conf

-Devaraj Takhellambam
  #3 (permalink)  
Old 05-26-2009
lightdensity lightdensity is offline
Regisztrált felhasználó
  
 

Join Date: May 2009
Hozzászólások: 6
Idézet:
Originally Posted by devtakh View Post
Kód:
sed '/Server=127.0.0.1/{s//Server=0.0.0.0/g}
/ServerPort=0/{s//ServerPort=1/g}
/Enable Server=1/{s//Enable Server=0/g}
' /opt/server.conf > /opt/new_server.conf

-Devaraj Takhellambam
Köszönöm a választ .. Igazából én új shell scripting

Kód:
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

Szóval, hogyan lehet tudni, melyik a jobb string?

köszönöm
  #4 (permalink)  
Old 05-26-2009
BubbaJoe's Avatar
BubbaJoe BubbaJoe is offline
Regisztrált felhasználó
  
 

Join Date: Oct 2008
Helyszín: St. Louis
Posts: 153
Ön IFS van baj. Az IFS \u003d "" azt mondja, nincs elválasztó így az egész fájlt olvasni. Csak IFS van valójában SEPERATOR között minden területen. Szóval macska $ FILE nem adja meg soronként, hogy megadja a fájl, miközben a területen egyszerre. Így csak 1 egyezési idő. Mivel te akarod nézd minden sor egy rekord használható awk vagy sed találni, és cserélje ki a szöveget.

Szóval ez a munka, amely az Ön által kiküldött devtakh, amely azt mondja, keresés a teljes dokumentációt, és a helyébe az ennek megfelelő mintát az adott minta minden esetben meg akarjuk változtatni. Meg fogja találni mindenki külön-külön, és változtassa meg a fájl, ahogy akarsz.

sed "/ Server \u003d 127.0.0.1 / (s / / Server \u003d 0.0.0.0 / g)
/ ServerPort \u003d 0 / (s / / ServerPort \u003d 1 / g)
/ Server Enable \u003d 1 / (s / / Server Enable \u003d 0 / g)
"/ Opt / server.conf> / opt / new_server.conf
  #5 (permalink)  
Old 05-26-2009
lightdensity lightdensity is offline
Regisztrált felhasználó
  
 

Join Date: May 2009
Hozzászólások: 6
Idézet:
Originally Posted by BubbaJoe View Post
Ön IFS van baj. Az IFS \u003d "" azt mondja, nincs elválasztó így az egész fájlt olvasni. Csak IFS van valójában SEPERATOR között minden területen. Szóval macska $ FILE nem adja meg soronként, hogy megadja a fájl, miközben a területen egyszerre. Így csak 1 egyezési idő. Mivel te akarod nézd minden sor egy rekord használható awk vagy sed találni, és cserélje ki a szöveget.
thanks for help ..

igen, mi az, ha meg
IFS \u003d "\ n \ t"

mint azt hiszem, macska $ FILE majd soronként ..

OK! I will try it out .. Addig is akkor nézd meg a többi kód .. és mondja el, hogy én kód helyes, vagy sem.

köszönöm
  #6 (permalink)  
Old 05-26-2009
devtakh devtakh is offline
Regisztrált felhasználó
  
 

Join Date: Oct 2007
Helyszín: Bangalore
Posts: 514
Idézet:
Originally Posted by lightdensity View Post
Köszönöm a választ .. Igazából én új shell scripting

Kód:
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

Szóval, hogyan lehet tudni, melyik a jobb string?

köszönöm
Ez lesz a hulladék az erőforrás használatához a shell script, ha sed tudja kezelni azt. Önnek nem kell ellenőrizni, ha a szó létezik, és ha létezik, akkor cserélje ki. sed tehetünk, hogy az Ön számára.
De beládáz kell hogy .. Azt javaslom használata közben hurok helyett egy a hurok a macska parancsot.


Kód:
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
  #7 (permalink)  
Old 05-27-2009
lightdensity lightdensity is offline
Regisztrált felhasználó
  
 

Join Date: May 2009
Hozzászólások: 6
Idézet:
Originally Posted by devtakh View Post
Kód:
sed '/Server=127.0.0.1/{s//Server=0.0.0.0/g}
/ServerPort=0/{s//ServerPort=1/g}
/Enable Server=1/{s//Enable Server=0/g}
' /opt/server.conf > /opt/new_server.conf

-Devaraj Takhellambam
Szia Devaraj Takhellambam,

Saját megoldás szerkezet finom ... de néző új probléma most ... Igazából én nem említett én teljes bemeneti fájl, amely

Kód:
### 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 ##

Tehát amit én végrehajtotta kinézni

Kód:
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

Kimeneti fájl külleme

Kód:
Server=0.0.0.0
ServerPort=1
Enable Server=0

Szóval, mikor én execute kódot, a kimeneti fájl csak a szálakat, amelyek már megváltozott, vannak olyan karakterláncok, amelyek akarok másolni, mint azt.

Sajnálom zavarja Önt sok ...

köszönöm
Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 03:34 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0