Ubuntu-Austria Foren-Übersicht
Portal  •  Forum  •  Profil  •  Suchen   •  Registrieren  •  Einloggen, um private Nachrichten zu lesen  •  Login   

 sed - Hilfe zum Befehl

Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
haidi




Geschlecht:
Alter: 67
Anmeldungsdatum: 03.11.2007
Beiträge: 604
Wohnort: 1230


austria.gif

BeitragVerfasst am: 08.01.2011, 03:03    sed - Hilfe zum Befehl Antworten mit ZitatNach oben

Hallo,
ich habe ein Problem mit sed:

Ich will in Text-Dateien bestimmte Zeichen durch bestimmte andere ersetzten und zwar in allen Dateien z.B. das Zeichen A durch B

Dazu könnte ich die Befehle for - done und sed verwenden.

for i in *.txt: do sed s/A/B/ < $I; done


Dabei wird das Ergebnis auf dem Bildschirm ausgegeben.

Ich möchte am liebsten die Dateien ersetzen, aber er kann mir auch neue Dateien schreiben, die sich halt um einen vorgesetzen Buchstaben unterscheiden, also z.B. datei.txt -> adatei.txt

Dazu gibt es den Parameter -w, aber mit dem komme ich nicht zurecht.

Wie geht das?

Hannes


Desktop: Unity Gnome 3.X

Version: 16.04

Hardware: Workstation and Netbook

Architektur: 64Bit

_________________
MSI Barebone, Ubuntu 14.04
IBM X200 Ubuntu 14.04

Ein Windows-User ist wie ein Alkoholiker:
Ein Alkoholiker muss seine Krankheit selbst einsehen, dann macht der Entzug Sinn.
Ein Windows-User muss einsehen, dass Windows sch###e ist – dann kann man ihm Ubuntu installieren.
OfflineBenutzer-Profile anzeigenPrivate Nachricht senden    
kappa




Geschlecht:
Alter: 47
Anmeldungsdatum: 26.10.2009
Beiträge: 1466
Wohnort: Wien 10


austria.gif

BeitragVerfasst am: 08.01.2011, 10:03    (Kein Titel) Antworten mit ZitatNach oben

Hallo, da seh ich jetzt aber paar Syntaxfehler:
Keinen Doppelpunkt machen, kein großes I machen.
Wozu mit Kleinerzeichen das File einlesen?

Wenn Du eine in-situ Ersetzung machen willst,
also das Original File per Kommando editieren/ersetzen lassen,
und eine Backup-Version, dann kannst Du das so machen:

sed -i.bak s/A/B/ *.txt


Das wäre des Rätsels Lösung.


Uups, Du wolltest ja die Filenamen anders benennen:
Alle modifizierten Files mit Prefix "a" anfangen lassen,
die Originalfiles bleiben unberührt:

for i in *.txt; do sed s/A/B/ "$i" > "a$i"; done


Filenamen bitte unter doppelte Hochkomma, sonst gibts
Syntaxfehler und Abbrüche, wenn Dir ein File mit zB Leerzeichen im Namen unterkommt.


Desktop: Gnome 2.X

Version: 10.04

Hardware: Notebook

Architektur: 32Bit

_________________
Firma: Lenovo T410 10.04 32bit (Intel IGP 1440x900, Intel SSD)
Privat: Lenovo T500 10.04 32bit (Intel IGP 1680x1050, Seagate FDE)
OfflineBenutzer-Profile anzeigenPrivate Nachricht senden    
haidi




Geschlecht:
Alter: 67
Anmeldungsdatum: 03.11.2007
Beiträge: 604
Wohnort: 1230


austria.gif

BeitragVerfasst am: 08.01.2011, 11:50    (Kein Titel) Antworten mit ZitatNach oben

Danke

Hannes


Desktop: Unity Gnome 3.X

Version: 16.04

Hardware: Workstation and Netbook

Architektur: 64Bit

_________________
MSI Barebone, Ubuntu 14.04
IBM X200 Ubuntu 14.04

Ein Windows-User ist wie ein Alkoholiker:
Ein Alkoholiker muss seine Krankheit selbst einsehen, dann macht der Entzug Sinn.
Ein Windows-User muss einsehen, dass Windows sch###e ist – dann kann man ihm Ubuntu installieren.
OfflineBenutzer-Profile anzeigenPrivate Nachricht senden    
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


 Gehe zu:   



Berechtigungen anzeigen


Forensicherheit

1008050158575 Angriffe abgewehrt

Powered by Orion based on phpBB © 2001, 2002 phpBB Group
CBACK Orion Style based on FI Theme
Alle Zeiten sind GMT + 2 Stunden



[ Page generation time: 0.1187s (PHP: 73% - SQL: 27%) | SQL queries: 35 | GZIP enabled | Debug off ]