temp; mv temp $ y; gjort og det fungerede fint til at finde og erstatte snore med navne osv. i alle" /> shell script til at finde og erstatte strengen i flere filer - UNIX og Linux Forums
The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
finde og erstatte strengen i en mappe filer koti_rama Shell Programmering og Scripting 2 05-30-2008 04:48 AM
Find og erstatte en snor i flere filer pharos467 UNIX for dummyer Spørgsmål & svar 2 11-05-2007 11:47 PM
Søg og erstat i flere filer (Shell script) jatins_s Shell Programmering og Scripting 13 11-05-2007 02:11 PM
Find og erstatte filer i flere mapper lodey Shell Programmering og Scripting 6 09-28-2007 03:00 AM
finde og FTP flere filer i Korn Shell lambjam UNIX for dummyer Spørgsmål & svar 2 08-13-2007 11:50 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 Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 11-05-2007
pharos467 pharos467 is offline
Registreret Bruger
  
 

Join Date: Nov 2007
Stillinger: 24
shell script til at finde og erstatte strengen i flere filer

Jeg brugte følgende script


CD stinavn
for y i `ls *`;
gøre sed "s / ABCD / DCBA / g" $ y> temp; MV temp $ y;
gjort



og det virkede fint til at finde og erstatte snore med navne osv. i alle filer i den angivne sti.

Jeg forsøger at erstatte en streng, der består af sti (placering af filen)

sige i stedet for ABCD jeg nødt til at erstatte c: / mydocuments / billeder til
d: / mypics / personlig, som metategn plejer skal søges i UNIX dette script er ikke at erstatte strengen, som har en sti i det.

nu er mit script


CD stinavn
for y i `ls *`;
gøre sed "s / 'c: / mydocuments / billeder' / 'D: / mypics / personlig' / g" $ y> temp; mv temp $ y;
gjort





Jeg træt give stien i enkelt citationstegn og dobbelte anførselstegn, men jeg se fejl

sed: Kommando forvansket: s / 'c: / mydocuments / billeder' / 'D: / mypics / personlig' / g


Og hele indholdet af filerne i stien slettes.


Også forsøgt følgende hjælp sed --


sed -e "s! AAA! BBB! g"
sed \u003d e "s + AAA + BBB + g"

som strengen har / i filplacering sti

Er der nogen anden måde at arbejde på det.

Tak
  #2 (permalink)  
Old 11-05-2007
aigles's Avatar
aigles aigles is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Apr 2004
Beliggenhed: Bordeaux, Frankrig
Posts: 1.433
Forsøge

Code:
cd pathname
for y in `ls *`;
do 
   sed 's_c:/mydocuments/pictures_d:/mypics/personal_' $y > temp; mv temp $y;
done

Jean-Pierre.

Sidst redigeret af aigles; 11-05-2007 på 03:42 PM.. Årsag: sed kommando korrektion
  #3 (permalink)  
Old 11-05-2007
pharos467 pharos467 is offline
Registreret Bruger
  
 

Join Date: Nov 2007
Stillinger: 24
træt

nedenstående script sendte fejl

sed: Kommando forvansket:
  #4 (permalink)  
Old 11-05-2007
aigles's Avatar
aigles aigles is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Apr 2004
Beliggenhed: Bordeaux, Frankrig
Posts: 1.433
Der var en fejlagtig / i sed kommando.
Forrige post ændret.

Jean-Pierre.
  #5 (permalink)  
Old 11-05-2007
gus2000 gus2000 is offline
Registreret Bruger
  
 

Join Date: oktober 2007
Stillinger: 157
Enkelt anførselstegn bliver almindelige tegn, når inde dobbelte anførselstegn. Så du kan gøre dette:

echo "that's OK"

og dette er ikke en fejl eller åben-tilbud. Så sætter enkelt-anførselstegn inde i et børsnoteret sed-udtryk er OK, men er ikke citere teksten mellem dem.

Ovenstående kode af Jean-Pierre ser OK ud for mig.
  #6 (permalink)  
Old 11-06-2007
pharos467 pharos467 is offline
Registreret Bruger
  
 

Join Date: Nov 2007
Stillinger: 24
Now it works, en af de _ mangler i min sed kommando.

Tak 2 alle, der reagerede
  #7 (permalink)  
Old 01-15-2009
wlcm232 wlcm232 is offline
Registreret Bruger
  
 

Join Date: Jan 2009
Stillinger: 2
finde og erstatte kodning i perl

#! / usr / bin /perl
# bash #. / ff.pl - prod \ / opt \ / WebSphere5 - cob \ / opt \ / was6mig \ / WebSphere5-base

bruge File:: Find;
brug Getopt:: Long;
# $ dmPath \u003d "/ scratch / optcob / cells.dmgr.tmp";
# Rediger Basepath med nye kopieres WAS5 kopieres placering.
$ basePath \u003d "/ opt/IBM/WAS6.1/IBMIHS/CI_CNV_CRD_HTTPServer";
$ dmPath \u003d "/ DM5"; # ikke bekymre dig om dette $ basePath \u003d "/ app/WebSphere6/profiles";
$ tmpf \u003d "/ tmp / tmpf";
sub ModFileByRegex (
my ($ TOK, $ repl, $ fpat, $ path) \u003d (@_);
my $ cnt \u003d 0;
sub fwanted (
-f & &
$ File:: Søg:: name \u003d ~ / $ fpat / & & do (
åben (INF, $ File:: Søg:: name) | | die "kan ikke åbne $ File:: Søg:: Navn: $!";
open (TMPF, "> $ tmpf") | | die "kan ikke åbne $ tmpf for at skrive: $!";
my @ input \u003d <INF>;
my $ change \u003d grep (s / $ tok / $ repl / g) @ input;
if ($ ændre> 0) (
tæt INF;
print TMPF @ input;
tæt TMPF;
print "ajourføring / gemme kopi af $ File:: Søg:: name \ n";
omdøbe $ File:: Søg:: navn, $ File:: Søg:: name. ". org";
print `cp-p $ tmpf $ File:: Søg:: \ n`;
$ cnt + +;
)
)
)
print "søger fra $ Sti for $ tok i filer, der kaldes $ fpat \ n";
find (\ & fwanted, $ path);
return ($ cnt);
)
sub findDirByRegex (
my ($ TOK, $ repl, $ path) \u003d (@_);
my $ cnt \u003d 0;
sub ønskede (
-D & &
$ File:: Søg:: name \u003d ~ / $ tok [\ w \ .]*?$/ & &
push @ DIRL, $ File:: Søg:: name;
)
print "Looking for mapper fra $ sti kaldet $ tok \ n";
find (\ & ønskede, $ path);
while ($ _ \u003d pop @ DIRL) (
$ src \u003d $ _;
s / $ tok ([\ w \ .]*)?$/$ repl $ 1 /;
print "omdøbe $ src, $ _ \ n";
omdøbe $ src, $ _ | | advare "Kunne ikke omdøbe sidste fil, kan du tjekke";
$ cnt + +;
)
return ($ cnt);
)
% optctl \u003d ();
GetOptions (\% optctl, "prod \u003d s", "cob \u003d s", "dmgr", "base");
print "sæt valgmuligheder: \ n \ n";
print "prod-system (kilde system):". $ optctl ( "prod"). "\ n";; print "majskolbe system (Target):". $ optctl ( "majskolbe"). "\ n"; print "Do Deployment Manager \ n" if ($ optctl ( "dmgr") \u003d\u003d 1); print "Do Base WebSphere \ n" if ($ optctl ( "base") \u003d\u003d 1);
print "\ n \ n";
if ($ optctl ( "dmgr") \u003d\u003d 1) (
print "ajourføring Deployment Manager XML-filer \ n";
$ cnt \u003d ModFileByRegex ($ optctl ( "prod"), $ optctl ( "majskolbe"), ".*", $ dmPath);
print "$ cnt XML-filer blev opdateret \ n";)
if ($ optctl ( "base") \u003d\u003d 1) (
print "ajourføring WebSphere Base XML-filer \ n";
$ cnt \u003d ModFileByRegex ($ optctl ( "prod"), $ optctl ( "majskolbe"), ".*", $ basePath);
print "$ cnt XML-filer blev opdateret \ n";)
if ($ optctl ( "dmgr") \u003d\u003d 1) (
print "ajourføring Deployment Manager base mappenavne \ n";
$ cnt \u003d findDirByRegex ($ optctl ( "prod"), $ optctl ( "majskolbe"), $ dmPath);
print "$ cnt mappenavne opdateret \ n";)
if ($ optctl ( "base") \u003d\u003d 1) (
print "ajourføring WebSphere base mappenavne \ n";
$ cnt \u003d findDirByRegex ($ optctl ( "prod"), $ optctl ( "majskolbe"), $ basePath);
print "$ cnt mappenavne opdateret \ n";)
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 05:17 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0