![]() |
![]() |
|
|
|||||||
| Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1 |
|
Inventar
![]() |
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. |
|
|
|
|
|
#2 |
|
Senior Member
![]() |
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.... ![]() ![]() ![]() ![]() |
|
|
|
|
|
#3 |
|
Aussteiger
![]() |
____________________________________
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. |
|
|
|
|
|
#4 |
|
Veteran
![]() Registriert seit: 21.07.2001
Alter: 45
Beiträge: 404
|
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 |
|
|
|
|
|
#5 |
|
Inventar
![]() |
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. |
|
|
|
|
|
#6 |
|
Senior Member
![]() |
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 ![]() |
|
|
|
|
|
#7 |
|
Jr. Member
![]() Registriert seit: 19.06.2002
Alter: 58
Beiträge: 59
|
@ERRA
sed < orifile "s/text1/text2/g" > newfile Habs nicht ausprobiert, sollte aber nicht so falsch sein. LG Pav |
|
|
|
|
|
#8 |
|
Aussteiger
![]() |
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. |
|
|
|
|
|
#9 |
|
Inventar
![]() Registriert seit: 08.02.2000
Beiträge: 1.696
|
Ich bin für Perl...
![]() Code:
$string =~ s/text to search/text to replace/g;
____________________________________
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. |
|
|
|
|
|
#10 |
|
Inventar
![]() |
@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! |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|