[gelöst] Finden und ersetzen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
safo
Beiträge: 20
Registriert: 26.07.2002 11:18:37
Wohnort: Bern

[gelöst] Finden und ersetzen

Beitrag von safo » 04.06.2005 21:21:24

Hallo zusammen

Ich möchte automatisch ein Suchmuster finden und dieses durch etwas anderes ersezten. Habe jedoch kein Programm entdeckt, mit den ich sowas machen könnte! Ich hoffe ihr könnt mir helfen.
Besten Dank

Safo
Zuletzt geändert von safo am 04.06.2005 22:18:40, insgesamt 1-mal geändert.

Benutzeravatar
SubOptimal
Beiträge: 1709
Registriert: 10.01.2005 23:25:46
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: bei Frankfurt

Beitrag von SubOptimal » 04.06.2005 21:40:57

Hi Safo,

da müsstest Du schon etwas genauer angeben was Du erreichen willst.

Code: Alles auswählen

:~/tmp > echo Das ist die erste Zeile > textdatei
:~/tmp > echo Das ist die zweite Zeile >> textdatei
:~/tmp > echo Das ist die dritte Zeile >> textdatei
:~/tmp > sed -n 's/ist die/ist jetzt die/p' textdatei
Das ist jetzt die erste Zeile
Das ist jetzt die zweite Zeile
Das ist jetzt die dritte Zeile
Aber vielleicht hilft das ja schon weiter.

SubOptimal

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 04.06.2005 21:53:22

In was für einer Datei willst du denn suchen? Wenns einfacher Text ist dann ist der Vim dein Freund.

In der einfachsten Form sähe das dann so aus

Code: Alles auswählen

:1,$s/text1/text2/g 
Sucht von Zeile 1 bis Textende Text1 und ersetzt ihn durch Text2 Und das g steht für die ganze Zeile.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

safo
Beiträge: 20
Registriert: 26.07.2002 11:18:37
Wohnort: Bern

Beitrag von safo » 04.06.2005 22:05:51

Vielen Dank. Das ist schon mal die richtige Richtung.
Doch ich möchte eine URL angeben. was muss ich machen, dass der / nicht als spezielles Zeichen behandelt wird?

Ich möchte es in einem Script. sed wäre also das richtige.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 04.06.2005 22:07:29

Das schafft der Vi auch. Du kannst das dann so abwandeln

Code: Alles auswählen

:1,$s#text1#text2#g
Oder wenns sein muß auch Escapen durch den einen \ . Und wilst du nach einem Backslasch suchen mußt du ihn auch Escapen so \\ usw.
Zuletzt geändert von KBDCALLS am 24.06.2007 15:51:31, insgesamt 4-mal geändert.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 04.06.2005 22:10:52

safo hat geschrieben: Doch ich möchte eine URL angeben. was muss ich machen, dass der / nicht als spezielles Zeichen behandelt wird?
mit einem Backslash davor: z.B.:

Code: Alles auswählen

http:\/\/www\.debianforum\.de
Gruß
gms

safo
Beiträge: 20
Registriert: 26.07.2002 11:18:37
Wohnort: Bern

Beitrag von safo » 04.06.2005 22:18:15

Ich danke vielmals. Es funktioniert genau so, wie ich es wollte.
Obwohl der Code durch die vielen \ und / zimlich unleserlich geworden ist :( Aber das Script ist ja auch nur für mich.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 04.06.2005 22:19:59

Das haben nun mal die Regex so an sich. Aber ist noch harmlos.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 04.06.2005 22:21:22

@ KBDCALLS

gelb ist eine schöne farbe für die biene maya - aber ich bin nicht in der lage das zu lesen - der schmerz zieht bis ins hirn hinein - bei mir kommt das extrem krass herüber ... 8O :wink:

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 04.06.2005 22:23:31

gms hat geschrieben:
safo hat geschrieben: Doch ich möchte eine URL angeben. was muss ich machen, dass der / nicht als spezielles Zeichen behandelt wird?
mit einem Backslash davor: z.B.:

Code: Alles auswählen

http:\/\/www\.debianforum\.de
Gruß
gms
oder noch einfacher

Code: Alles auswählen

'http://www.way-to-nasenbär.org'

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 04.06.2005 22:31:17

meandtheshell hat geschrieben:gelb ist eine schöne farbe für die biene maya - aber ich bin nicht in der lage das zu lesen - der schmerz zieht bis ins hirn hinein - bei mir kommt das extrem krass herüber ... 8O :wink:
da habe ich schon vermutet, daß du ein schlechtes Kraut geraucht hast
meandtheshell hat geschrieben: oder noch einfacher

Code: Alles auswählen

'http://www.way-to-nasenbär.org'
jetzt bin ich mir sicher

lg
gms

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 04.06.2005 22:39:19

@ gms
hehe - lass mich raten - da hat sicher einer geguckt obs den URL gibt :mrgreen: - und merken - immer immer die rote pille nehmen 8) - oder wars doch die blaue - ahhhhhhhhh

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 04.06.2005 22:42:20

@meandtheshell vermutlich war auch eins von den 20 Bierchen nur schlecht :lol:
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 05.06.2005 02:36:02

safo hat geschrieben:was muss ich machen, dass der / nicht als spezielles Zeichen behandelt wird?
Einfach ein anderes Trennzeichen verwenden:

Code: Alles auswählen

s#ömmeldömmel#http://www.dot-com-slash-foo-slash-bar.com/foo/bar#
Kannst natürlich auch ein !, ein §, ein € oder ein ¿ nehmen.

Antworten