The UNIX and Linux Forums  

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
Må erstatte det første ordet på en linje hvis det skjer igjen i neste linje (Shell) geeko Shell programmering og Skripting 4 06-18-2009 03:36
søke etter en streng, erstatte hele linjen med ny linje kkraja Shell programmering og Skripting 4 08-07-2008 03:26
Hvordan erstatte en linje ukatru Shell programmering og Skripting 2 08-04-2008 03:51
Hvordan erstatte en linje med tre i sed ch0sen Shell programmering og Skripting 6 03-05-2008 12:08
sed - Erstatt Line som inneholder mønsteret samsvarer med en ny linje kousikan Shell programmering og Skripting 2 03-24-2007 07:24

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 09-01-2008
unknown123 unknown123 is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Innlegg: 19
Red face Erstatt linje med Ingenting

Hei,

Jeg vil erstatte noen linjer i en fil "Source.txt" ved å søke mønsteret innspill fra en annen fil som heter "abc".

Søk mønster inndatafilen har følgende linjer:

VI abc
2637918
2707239
2709124
2709148
2709159
2709177
...........

Jeg kjører følgende kode:

for i in `cat abc`; gjøre perl -pi.bk4-e 's /^.*$ i. * / / g' Source.txt; gjort

men det fungerer ikke .......
pls hjelpe.
  #2 (permalink)  
Old 09-01-2008
vidyadhar85's Avatar
vidyadhar85 vidyadhar85 is offline Forum Staff  
Moderator (The Tutor)
  
 

Bli Dato: juni 2008
Beliggenhet: INDIA
Innlegg: 1419
mens du leser linje
gjøre
sed -i "s /^.*$ linje .* / / g" source.txt / / eller / / sed -i 's /^.*${ linje }.*// g'
Ferdig <abc

eller prøv

Sist endret av vidyadhar85; 09-01-2008 på 05:15..
  #3 (permalink)  
Old 09-01-2008
æra era is offline Forum Advisor  
Herder av Useless Cats (På Sabbatical)
  
 

Bli Date: Mar 2008
Sted: / det / er / bare / bin / sh
Innlegg: 3652
Du vil erstatte dem med tomme linjer, eller slette dem? Slett er enkel:


Code:
fgrep -vf abc Source.txt

For å erstatte med noe, kanskje det følgende:


Code:
sed -e 's%.*%s/.*&.*//%' abc | sed -f - Source.txt

Kanskje din sed ikke kan håndtere standard input for-f alternativ, og hvis så, rapportere tilbake her og vi vil tenke på løsninger.

Gjentatte looping over alle innspill mønstre synes svært inelegant og ineffektivt.
  #4 (permalink)  
Old 09-01-2008
unknown123 unknown123 is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Innlegg: 19
Hi Vidya,
ur sed commnd erstatter inntastingsfeltet søk mønster linje med ingenting, men .... Størrelsen på utdatafilen blir 3 ganger mer enn Orignal fil .... betyr at hver gang etter erstatte Matchet linje med ingenting kommandoen legge hele filen til utdatafilen igjen ....

pl hjelpe noen ....... HW å overvinne dette problemet ...
  #5 (permalink)  
Old 09-01-2008
dennis.jacob dennis.jacob is offline Forum Advisor  
dj - studenten
  
 

Bli Date: Feb 2007
Sted: Singapore / Bangalore / Cochin
Innlegg: 611

Code:
while read line
do
perl -i -ne 's/'$line'//g; print; ' filename
done < abc

  #6 (permalink)  
Old 09-01-2008
unknown123 unknown123 is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Innlegg: 19
Dennis ... det er heller ikke arbeide ....... pls angi tydelig.

Anta at min utdatafilen er OUTFILE .....

pls fortelle meg den eksakte koden ..
  #7 (permalink)  
Old 09-01-2008
dennis.jacob dennis.jacob is offline Forum Advisor  
dj - studenten
  
 

Bli Date: Feb 2007
Sted: Singapore / Bangalore / Cochin
Innlegg: 611
Sitat:
Originally Posted by unknown123 View Post
Dennis ... det er heller ikke arbeide ....... pls angi tydelig.

Anta at min utdatafilen er OUTFILE .....

pls fortelle meg den eksakte koden ..
Its fungerer bra!
Inngang:

Sitat:
[ "/ tmp"]> cat sample
1233
melding
[ "/ tmp"]> cat OUTFILE
test melding 1233 abcf fsd ds f
test melding abccd masage melding
Code:

Sitat:
[ "/ tmp"]> mens du leser linje
> Gjøre
> perl -i-ne 's / $ linje "/ / g; print;' OUTFILE
> Gjort <sample
Utdata:

Sitat:
[ "/ tmp"]> cat OUTFILE
test abcf fsd ds f
test abccd masage
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 11:27.


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