The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



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
Byta de senaste uppgifterna om varje rad ina fil jisha Shell-programmering och Skript 6 08-04-2008 08:47
Byta slut med "i en UNIX-fil The Observer Shell-programmering och Skript 2 05-17-2008 06:20
ersätter en linje av okänt charecters i en fil malavm Shell-programmering och Skript 12 07-26-2007 05:25
Ersätter tecken i filen med radbrytning johnemb Shell-programmering och Skript 10 04-26-2007 08:38
ersätter första raden eller raderna i en fil Terrible UNIX för avancerade & Expertanvändare 3 06-28-2006 09:23

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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 06-05-2008
maxmave maxmave is offline
Registered User
  
 

Join Date: april 2008
Inlägg: 21
Att ersätta en rad i en fil - HELP!

Jag har ett problem i följande kod ...


Kod:
while read line
do
   #Get Line Number 
   OLDLINE=`sed -n $Lineno $filename`
   echo "Un Changed Line : "$OLDLINE
   echo "Enter a New Pattern : "
   read NewPattern <&1
   echo "NewPattern :"$NewPattern 
   NEWLINE=`cat $filename | sed -n $Lineno | sed s/$OldPattern/$NewPattern/`
   echo $NEWLINE
   LINECHANGE=`sed s/$OLDLINE/$NEWLINE/ $filename`
   echo $LINECHANGE
   ChangedLine=`sed -n $Lineno $filename`
   echo "Changed Line : "$ChangedLine
done < $INT_FILE

Jag försöker läsa en linje från en fil och få linjen och ändra ett mönster i linje och jag vill ersätta
OLD linje med den nya linjen.

Jag har problem i följande rad

Kod:
LINECHANGE=`sed s/$OLDLINE/$NEWLINE/ $filename`

den gamla linjen inte ändras på ny rad i filen.

Finns det några problem med kommandot jag gav, eller ska jag behöva korrigera det

Kan någon vänligen hjälp.


Tack

Rahul

Senast redigerad av Yogesh Sawant; 06-05-2008 at 02:06.. Orsak: lagt till kod taggar
  #2 (permalänk)  
Old 06-05-2008
jaduks's Avatar
jaduks jaduks is offline
Registered User
  
 

Join Date: Aug 2007
Ort: Assam, Indien
Inlägg: 167
Se här:


Kod:
$ cat ea.txt
root 1933 1923 localhost calm 32rhewr

$ A=root

$ B=ROOT

$ sed 's/$A/$B/g' ea.txt
root 1933 1923 localhost calm 32rhewr

**No change above

So use double quotes instead of single quote: 

$ sed "s/$A/$B/g" ea.txt
ROOT 1933 1923 localhost calm 32rhewr

So 

LINECHANGE=`sed s/$OLDLINE/$NEWLINE/ $filename`

should be something like this:

LINECHANGE=`sed "s/$OLDLINE/$NEWLINE/" $filename`

/ / Jadu
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 04:48.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0