temp; mv temp $ y; getan und es funktionierte gut für Suchen und Ersetzen von Strings mit den Namen, etc. in allen" /> Shell-Skript zu finden und zu ersetzen String in mehreren Dateien - Die UNIX-und Linux-Foren
The UNIX and Linux Forums  


Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Suchen und Ersetzen von Strings in einem Verzeichnis Dateien koti_rama Shell Programmierung und Scripting 2 05-30-2008 04:48 AM
Suchen und ersetzen eine Zeichenkette in mehreren Dateien pharos467 UNIX for Dummies Questions & Answers 2 11-05-2007 11:47 PM
Suchen und Ersetzen in mehreren Dateien (Shell-Skript) jatins_s Shell Programmierung und Scripting 13 11-05-2007 02:11 PM
Suchen und Ersetzen von Dateien in mehreren Ordnern lodey Shell Programmierung und Scripting 6 09-28-2007 03:00 AM
finden und FTP mehrere Dateien in Korn Shell lambjam UNIX for Dummies Questions & Answers 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 11-05-2007
pharos467 pharos467 is offline
Registrierte Nutzer
  
 

Join Date: Nov 2007
Beiträge: 24
Shell-Skript zu finden und zu ersetzen String in mehreren Dateien

Ich habe das folgende Skript


cd Pfadname
für Y in `ls *`;
tun sed "s / ABCD / DCBA / g" $ y> temp; mv temp $ y;
getan



und es funktioniert zum Suchen und Ersetzen von Strings mit den Namen, usw. in allen Dateien von den vorgegebenen Pfad.

Ich versuche, ersetzen eine Zeichenkette, die aus Pfad (Sitz der Datei)

sagen, anstelle von ABCD zu ersetzen habe ich C: / mydocuments / Bilder zu
d: / mypics persönliche, als Metazeichen werden nicht hast in Unix Dieses Skript ist nicht zu ersetzen, die Zeichenfolge, die einen Weg in sie.

jetzt ist mein Skript


cd Pfadname
für Y in `ls *`;
tun sed "s /" c: / mydocuments / Bilder "/" d: / mypics persönliche "/ g" $ y> temp; mv temp $ y;
getan





Ich müde, die den Pfad in einfache Anführungszeichen und doppelten Anführungszeichen, aber ich sehe Fehler

sed: Verzerrter Befehl: s / "c: / mydocuments / Bilder" / "d: / mypics / personal / g


Und alle Inhalte der Dateien in den Pfad gelöscht.


Auch versucht die folgenden mit sed --


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

wie die Zeichenkette / in der Datei-Pfad

Gibt es einen anderen Weg zur Arbeit dies.

Danke
  #2 (permalink)  
Old 11-05-2007
aigles's Avatar
aigles aigles is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Apr 2004
Ort: Bordeaux, Frankreich
Posts: 1428
Versuchen
Code:
cd pathname
for y in `ls *`;
do 
   sed 's_c:/mydocuments/pictures_d:/mypics/personal_' $y > temp; mv temp $y;
done
Jean-Pierre.

Zuletzt bearbeitet von aigles; am 11-05-2007 03:42 PM.. Grund: sed-Kommando Korrektur
  #3 (permalink)  
Old 11-05-2007
pharos467 pharos467 is offline
Registrierte Nutzer
  
 

Join Date: Nov 2007
Beiträge: 24
müde

unten an die Skript-Fehler

sed: Verzerrter Befehl:
  #4 (permalink)  
Old 11-05-2007
aigles's Avatar
aigles aigles is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Apr 2004
Ort: Bordeaux, Frankreich
Posts: 1428
Es wurde eine fehlerhafte / in der sed Befehl.
Zurück nach geändert werden.

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

Join Date: Oct 2007
Beiträge: 157
Einfache Anführungszeichen zu normalen Zeichen, wenn innerhalb der doppelten Anführungszeichen. So können Sie dies:

echo "Das ist OK"

und das ist nicht ein Fehler oder Open-Zitat. So setzen einfachen Anführungszeichen innerhalb eines börsennotierten sed-Ausdruck ist in Ordnung, ist aber nicht zitieren den Text zwischen ihnen.

Der Code oben von Jean-Pierre sieht OK für mich.
  #6 (permalink)  
Old 11-06-2007
pharos467 pharos467 is offline
Registrierte Nutzer
  
 

Join Date: Nov 2007
Beiträge: 24
Nun es funktioniert, eine der _ fehlt in meinem sed Befehl.

Thanks 2 alle, die geantwortet
  #7 (permalink)  
Old 01-15-2009
wlcm232 wlcm232 is offline
Registrierte Nutzer
  
 

Join Date: Jan 2009
Beiträge: 2
Suchen und Ersetzen in Perl-Programmierung

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

File:: Find;
use Getopt:: Long;
# $ dmPath \u003d "/ scratch / optcob / cells.dmgr.tmp";
# Ändern Sie die Basepath mit neuen Ort kopiert WAS5 kopiert.
$ basePath \u003d "/ opt/IBM/WAS6.1/IBMIHS/CI_CNV_CRD_HTTPServer";
$ dmPath \u003d "/ DM5" # Machen Sie sich keine Sorgen zu diesem basePath $ \u003d "/ app/WebSphere6/profiles";
$ tmpf \u003d "/ tmp / tmpf";
Unter ModFileByRegex (
my ($ tok, $ repl, $ fpat, $ Path) \u003d (@_);
my $ cnt \u003d 0;
Unter fwanted (
-f & &
$ File:: Find:: name \u003d ~ / $ fpat / & & do (
open (INF, $ File:: Find:: name) | | die "Can't open $ file:: Suchen:: Name: $!";
open (TMPF, "> $ tmpf") | | die "Can't open $ tmpf für das Schreiben: $!";
my @ input \u003d <INF>;
my $ ändern \u003d grep (s / $ tok / $ repl / g) @ input;
if ($ change> 0) (
Schließen INF;
print @ TMPF Eingang;
Schließen TMPF;
print "Aktualisieren / Speichern Kopie $ File:: Suchen:: Name \ n";
umbenennen $ File:: Find:: name, $ File:: Suchen:: Name. ". org";
print "cp-p $ $ tmpf File:: Suchen:: Name \ n";
$ cnt + +;
)
)
)
print "Suche von $ Pfad für $ tok in Dateien namens $ fpat \ n";
find (\ & fwanted, $ path);
return ($ cnt);
)
Unter findDirByRegex (
my ($ tok, $ repl, $ Path) \u003d (@_);
my $ cnt \u003d 0;
Unter wollte (
-d & &
$ File:: Find:: name \u003d ~ / $ tok [\ w \ .]*?$/ & &
Push @ DIRL, $ File:: Find:: name;
)
print "Suche für Verzeichnisse von $ Pfad namens $ tok \ n";
find (\ & wanted, $ path);
while ($ _ \u003d pop @ DIRL) (
$ src \u003d $ _;
s / $ tok ([\ w \ .]*)?$/$ repl $ 1 /;
print "umbenennen $ src, $ _ \ n";
umbenennen $ src, $ _ | | warn "nicht umbenennen letzte Datei, überprüfen Sie bitte";
$ cnt + +;
)
return ($ cnt);
)
optctl% \u003d ();
GetOptions (\% optctl, "prod \u003d s", "cob \u003d s", "dmgr", "Basis");
print "Optionen: \ n \ n";
print "Pro-System (Quellsystem):". ($ optctl "Produkte"). "\ n"; print "COB (TARGET-System):". ($ optctl "COB"). "\ n"; print "Sie Deployment Manager \ n" if ($ optctl ( "dmgr") \u003d\u003d 1); print "Sie WebSphere Base \ n" if ($ optctl ( "base") \u003d\u003d 1);
print "\ n \ n";
if ($ optctl ( "dmgr") \u003d\u003d 1) (
print "Aktualisierung Deployment Manager XML-Dateien \ n";
$ cnt \u003d ModFileByRegex ($ (optctl "Produkte"), ($ optctl "COB"), ".*", $ dmPath);
print "$ cnt XML-Dateien wurden aktualisiert, \ n";)
if ($ optctl ( "base") \u003d\u003d 1) (
print "Aktualisierung WebSphere Base-XML-Dateien \ n";
$ cnt \u003d ModFileByRegex ($ (optctl "Produkte"), ($ optctl "COB"), ".*", $ basePath);
print "$ cnt XML-Dateien wurden aktualisiert, \ n";)
if ($ optctl ( "dmgr") \u003d\u003d 1) (
print "Aktualisierung Deployment Manager Basisverzeichnis Namen \ n";
$ cnt \u003d findDirByRegex ($ (optctl "Produkte"), ($ optctl "COB"), $ dmPath);
print "$ cnt Verzeichnisnamen aktualisiert \ n";)
if ($ optctl ( "base") \u003d\u003d 1) (
print "Aktualisierung der WebSphere-Basis-Verzeichnis-Namen \ n";
$ cnt \u003d findDirByRegex ($ (optctl "Produkte"), ($ optctl "COB"), $ basePath);
print "$ cnt Verzeichnisnamen aktualisiert \ n";)
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 09:59 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0