WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 24.07.2002, 10:07   #1
ERRA
Inventar
 
Registriert seit: 19.03.2001
Beiträge: 1.651

Mein Computer

Standard Befehl für search and replace

Aufgabenstellung ist es, einen bestimmten String in einem File durch einen anderen zu ersetzten. Weiters an einer bestimmten Position in dem selben File 2 weitere Zeilen hinzuzufügen.

Und das alles wenn geht durch ein Scripts! Also nicht direktes editieren des Files mit VI oder EMACS oder so.

I häng! Bitte helfts mir.
ERRA ist offline   Mit Zitat antworten
Alt 24.07.2002, 10:57   #2
ripper
Senior Member
 
Registriert seit: 15.01.2001
Beiträge: 103


ripper eine Nachricht über ICQ schicken
Standard

das hab ich auch mal gemacht ich habs im java gelöst....

du liest die erste datei komplett ein und gibst alles in einen string, dann schaust du wie lange der zu ersetzende string ist.
dann machst du substrings mit der länge des zu ersetzenden strings, dann bei jedem durchgang einen vergleich ob der substring mit dem zu ersetzenden string übereinstimmt.... wenn ja -> ersetzen, wenn nein -> weitermachen -> wenn fertig ist einfach den kompletten string wieder in die datei schreiben.....

ich kann mal den java code posten, bin aber noch nicht daheim....

ripper ist offline   Mit Zitat antworten
Alt 24.07.2002, 11:00   #3
pc.net
Aussteiger
 
Benutzerbild von pc.net
 
Registriert seit: 07.10.2001
Ort: Nettistan
Beiträge: 12.997

Mein Computer

Standard

schau dir mal die commands
grep, sed und awk
an

sed
____________________________________
Praktizierender Eristiker

No hace falta ser un genio para saber quién dijo eso.
Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein.
pc.net ist offline   Mit Zitat antworten
Alt 24.07.2002, 11:07   #4
it00x30
Veteran
 
Registriert seit: 21.07.2001
Alter: 45
Beiträge: 404


Standard

für nicht-programmierer grep sed und awk,
wenn du jedoch gern ein bisschen programierst und perl installiert hast wäre das das ideale tool für dich - wiederverwendbar, automatisierbar, ...

such nach "perl regular expression" oder so was in google, falls du noch keine erfahrung damit hast
it00x30 ist offline   Mit Zitat antworten
Alt 24.07.2002, 11:08   #5
ERRA
Inventar
 
Registriert seit: 19.03.2001
Beiträge: 1.651

Mein Computer

Standard

Danke für die Antworten!

@ripper
Java steht mir nicht auf jedem Server zur Verfügung (sind ca. 250!) - fällt somit also aus.

@pc.et
sed hab ich mir schon mal genauer angesehen. Nur bis ich die richtige Syntax für meine Zwecke gefunden hab, bin ich alt. Mal gucken.
ERRA ist offline   Mit Zitat antworten
Alt 24.07.2002, 11:12   #6
ripper
Senior Member
 
Registriert seit: 15.01.2001
Beiträge: 103


ripper eine Nachricht über ICQ schicken
Standard

najo habs in da schule als projekt gemacht....

aber wenn ne textdatei mit ca. 5000 zeilen hast, geht da ram auf 20 MB :P

und 5 mins hats auch gedauert zum durchlaufen mit einem amd xp 1700+....

najo solang es nur für die schule war
ripper ist offline   Mit Zitat antworten
Alt 24.07.2002, 11:15   #7
Pavlovs_Dog
Jr. Member
 
Registriert seit: 19.06.2002
Alter: 58
Beiträge: 59


Standard

@ERRA

sed < orifile "s/text1/text2/g" > newfile

Habs nicht ausprobiert, sollte aber nicht so falsch sein.

LG
Pav
Pavlovs_Dog ist offline   Mit Zitat antworten
Alt 24.07.2002, 11:57   #8
pc.net
Aussteiger
 
Benutzerbild von pc.net
 
Registriert seit: 07.10.2001
Ort: Nettistan
Beiträge: 12.997

Mein Computer

Standard

hab das seinerzeit auch hier im forum gelernt

Code:
# ersetze $1 mit $2 in Datei $3 schreibe in Datei $4
OLD=$1       # originaltext teil 
NEW=$2       # Neuer Text 
INFILE=$3    # Quelldatei 
OUTFILE=$4   # Zieldatei 

sed "s/$OLD/$NEW/g" $INFILE > $OUTFILE
____________________________________
Praktizierender Eristiker

No hace falta ser un genio para saber quién dijo eso.
Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein.
pc.net ist offline   Mit Zitat antworten
Alt 24.07.2002, 11:59   #9
SNo0py
Inventar
 
Registriert seit: 08.02.2000
Beiträge: 1.696


Standard

Ich bin für Perl...

Code:
$string =~ s/text to search/text to replace/g;
$string muss natürlich das File enthalten...
____________________________________
Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you.
SNo0py ist offline   Mit Zitat antworten
Alt 24.07.2002, 12:57   #10
ERRA
Inventar
 
Registriert seit: 19.03.2001
Beiträge: 1.651

Mein Computer

Standard

@pc.net
Danke, ich glaub das war's!

Ich war schon auf dem richtigen Weg. Nur hatte ich mit dem richtigen Setzen der Variablen ein Problem.

Jetzt muss ich nur noch einen 2ten String einbauen der ersetzt gehört.

Zunächst aber VIELEN DANK AN ALLE!
ERRA ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:38 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag