The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Søk og erstatt NycUnxer UNIX for Dummies Spørsmål og svar 4 03-06-2008 12:20
finne erstatter dbsurf Shell programmering og Skripting 2 01-25-2008 08:39
finne og erstatte mahabunta UNIX for Dummies Spørsmål og svar 7 09-21-2006 12:05
finne og erstatte vikas_j @ hotmail UNIX for Dummies Spørsmål og svar 3 02-25-2002 05:41
Søk og erstatt gagansharma Shell programmering og Skripting 3 11-27-2001 04:17

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 05-27-2009
allrise123 allrise123 is offline
Registrert bruker
  
 

Bli Dato: mai 2009
Innlegg: 9
finne og erstatte problem

hei folkens!

Jeg skriver et script som jeg ta et innspill fra bruker og finne det i en fil og erstatte det.
Min inndatafilen ser ut
Code:
hi
what your name?
allrise
min kode ser er
Code:
echo "Enter the name"
read name
FILE="/opt/name.txt"
NEW_FILE="/opt/new_name.txt"
exec 0<$FILE
    while read line
    do
     if [ -n "`echo ${line} | grep 'allrise'`" ]
     then
              echo ${line} | sed 's|allrise|hello $name|g' >>$NEW_FILE
     else
             echo $line >>$NEW_FILE
     fi
     done <$FILE
Når jeg kjører mitt script, spør meg om navnet vel i gave "John" ... men resultatet kommer som vist nedenfor
Code:
hi
what your name?
hello $name
så kan noen forklare hvordan jeg kan få skikkelig produksjon som bør være.
Code:
hi
what your name?
hello john
  #2 (permalink)  
Old 05-27-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmerer, forfatter
  
 

Bli Date: Mar 2007
Bosted: Toronto, Canada
Innlegg: 2361
Sitat:
Originally Posted by allrise123 View Post
hei folkens!

Jeg skriver et script som jeg ta et innspill fra bruker og finne det i en fil og erstatte det.
Min inndatafilen ser ut
Code:
hi
what your name?
allrise
min kode ser er
Code:
echo "Enter the name"
read name
FILE="/opt/name.txt"
NEW_FILE="/opt/new_name.txt"
exec 0<$FILE
    while read line
    do
     if [ -n "`echo ${line} | grep 'allrise'`" ]
     then
              echo ${line} | sed 's|allrise|hello $name|g' >>$NEW_FILE

Variablene er ikke utvidet i enkle anførselstegn; bruke doble anførselstegn:

Code:
echo ${line} | sed "s|allrise|hello $name|g" >>$NEW_FILE
Sitat:
Code:
     else
             echo $line >>$NEW_FILE
     fi
     done <$FILE
Når jeg kjører mitt script, spør meg om navnet vel i gave "John" ... men resultatet kommer som vist nedenfor
Code:
hi
what your name?
hello $name
så kan noen forklare hvordan jeg kan få skikkelig produksjon som bør være.
Code:
hi
what your name?
hello john

Som ikke gjør du:

Code:
sed "s/allrise/hello $name/" "$FILE" > "$NEWFILE"
Det er ikke behov for en loop.
  #3 (permalink)  
Old 05-27-2009
allrise123 allrise123 is offline
Registrert bruker
  
 

Bli Dato: mai 2009
Innlegg: 9
takk for svar ..

Egentlig er dette ikke min selve filen ... dette er bare dummy fil som jeg laget bare for å spørre meg spørsmål ... allikevel vil jeg prøve ditt forslag ..
  #4 (permalink)  
Old 06-06-2009
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala Mode
  
 

Bli Date: Feb 2007
Beliggenhet: Innsbruck, Østerrike
Innlegg: 1886
Duplikat av finne og erstatte søkeparametere

(Sokkedukke)
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 04:36.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0