Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateien mit Sed bearbeiten

Frage Entwicklung Batch & Shell

Mitglied: Necroscope

Necroscope (Level 1) - Jetzt verbinden

04.01.2013 um 11:15 Uhr, 2670 Aufrufe, 15 Kommentare

Guten Morgen.

Ich muss viele Dateien für eine Datenmigration Nachbearbeiten und würde gerne dafür Sed benutzen.

Aufgabe: an Zeile 6 ein " anhängen/tauschen weil es dort fehlt. es wurden nur 256 Zeichen ausgelesen.

C:\>sed 6s/.\{1\}$/\"/ d:\P0249902.jpl liefert das gewünschte Ergebnis auf dem Monitor, aber wie schreibt er es zurück in die Datei?

C:\>sed 6s/.\{1\}$/\"/ d:\P0249902.jpl > d:\P0249902.jpl funktioniert nicht.



Mitglied: Alchimedes
04.01.2013 um 11:48 Uhr
Hallo,

um in eine Datei zu schreiben nutze die option -w

http://openbook.galileocomputing.de/shell_programmierung/shell_014_000. ...


Gruss
Bitte warten ..
Mitglied: Necroscope
04.01.2013 um 12:30 Uhr
Ja aber wohin mit der Option?
Bitte warten ..
Mitglied: Alchimedes
04.01.2013 um 12:55 Uhr
Hallo,

das Sed Tutorial erklaert es doch ganz gut.

Aus Openbooks
Das entsprechende Gegenstück zum Kommando r erhalten Sie mit dem Kommando w, mit
dem Sie das Ergebnis von sed in einer Datei speichern können:

you@host > sed -n '/USA/w USA.dat' mrolympia.dat
you@host > cat USA.dat
Larry Scott USA 1965 1966
Sergio Oliva USA 1967 1968 1969
Chris Dickerson USA 1982
Lee Haney USA 1984 1985 1986 1987 1988 1989 1990 1991
Ronnie Coleman USA 1998 1999 2000 2001 2002 2003 2004


So muesste das jetzt gehen.

C:\>sed 6s/.\{1\}$/\"/w d:\P0249902.jpl

Gruss
Bitte warten ..
Mitglied: Necroscope
04.01.2013 um 13:12 Uhr
schon probiert aber dann kommt dies hier:

D:\Downloads\GetGnuWin32\bin>sed 6s/.\{1\}$/\"/w d:\P0249902.jpl
sed: couldn't open file : No such file or directory

D:\Downloads\GetGnuWin32\bin>cat d:\P0249902.jpl | sed 6s/.\{1\}$/\"/w out.txt
sed: couldn't open file : No such file or directory
Bitte warten ..
Mitglied: Alchimedes
04.01.2013 um 13:19 Uhr
Hallo,

Ist ja Ploetzlich eine ganz Andere Aufgabenstellung!!
das ist naturlich klar das das nicht geht.

Weil Sed liest aus einer Datei... Du willst aber eine Datei nach sed reinschieben...
D:\Downloads\GetGnuWin32\bin>(<---das hier geht nicht!) sed 6s/.\{1\}$/\"/w d:\P0249902.jpl

Nimm Dir Zeit und arbeite das Tutorial durch.
Das hilft Dir auf dauer nichts wenn ich Dir hier ne Loesung reinpruegel
die Du nicht verstehst.

Gruss
Bitte warten ..
Mitglied: Necroscope
04.01.2013 um 13:35 Uhr

Nimm Dir Zeit und arbeite das Tutorial durch.
Das hilft Dir auf dauer nichts wenn ich Dir hier ne Loesung reinpruegel
die Du nicht verstehst.


ja wieso kann ich das was auf dem Bildschirm richtig angezeigt wird nicht in eine Datei schreiben?

you@host > sed -n '/USA/w USA.dat' mrolympia.dat

das würde für mich bedeuten: sed 6s/.\{1\}$/\"/w d:\P0249902.jpl d:\P0249902.jpl

geht aber auch nicht.
Bitte warten ..
Mitglied: Alchimedes
04.01.2013 um 13:45 Uhr
Weil das
you@host > sed -n '/USA/w USA.dat' mrolympia.dat

was anderes ist als das

D:\Downloads\GetGnuWin32\bin>sed 6s/.\{1\}$/\"/w d:\P0249902.jpl
Bitte warten ..
Mitglied: Necroscope
04.01.2013 um 14:29 Uhr
Die Syntax ist wohl unterschiedlich in den Beispielen.

Per Try n Error hab ich mit diesem Befehl
sed -n "6s/.\{1\}$/\"/w d:\out2.txt" d:\P0249902.jpl

eine Datei erstellen können, aber da steht dann nur die geänderte Zeile drin und nicht das was vorher alles zu sehen war.
Bitte warten ..
Mitglied: Lochkartenstanzer
04.01.2013, aktualisiert um 19:13 Uhr
-i
Nachtrag:

C:\>sed 6s/.\{1\}$/\"/ -i d:\P0249902.jpl
should do the job.

lks
Bitte warten ..
Mitglied: paulepank
04.01.2013, aktualisiert 05.01.2013
Hallo Necroscope,

C:\>sed 6s/.\{1\}$/\"/ d:\P0249902.jpl liefert das gewünschte Ergebnis auf dem Monitor
aber mit Syntaxfehler

C:\>sed 6s/.\{1\}$/\"/ d:\P0249902.jpl > d:\P0249902.jpl funktioniert nicht.
wegen Syntaxfehler

Machs so:
füge ein Caret ein (^)
01.
C:\>sed 6s/.\{1\}$/\^"/ d:\P0249902.jpl > d:\neuP0249902.jpl
getestet in der cmd unter XP und es funktioniert.

cu paulepank

EDIT:
Name der Ausgabedatei geändert
Bitte warten ..
Mitglied: Lochkartenstanzer
04.01.2013, aktualisiert um 19:15 Uhr
Zitat von Necroscope:

ja wieso kann ich das was auf dem Bildschirm richtig angezeigt wird nicht in eine Datei schreiben?

Weil Du die Ausgabe in eine Datei lenkst, die Du gerade als Input für sed nimmst.

würde ich jetzt vermuten.

lks
Bitte warten ..
Mitglied: Necroscope
07.01.2013 um 11:53 Uhr
Zitat von paulepank:

Machs so:
füge ein Caret ein (^)
01.
C:\>sed 6s/.\{1\}$/\^"/ d:\P0249902.jpl > d:\neuP0249902.jpl
getestet in der cmd unter XP und es funktioniert.

cu paulepank

EDIT:
Name der Ausgabedatei geändert


Danke so funktioniert es.

ich ändere aber auf .neu. das kann man dann besser mit nem rename *.neu *. lösen.

jetzt bleibt nur noch die Frage wie man den Sed Befehl auf alle Dateien in dem Ordner loslässt.

C:\>sed 6s/.\{1\}$/\^"/ d:\*.jpl > d:\*.neu funktioniert leider nicht wie bei rename.
Bitte warten ..
Mitglied: paulepank
08.01.2013 um 22:43 Uhr
Hallo,

jetzt bleibt nur noch die Frage wie man den Sed Befehl auf alle Dateien in dem Ordner loslässt.
mit einer FOR-Schleife.
Hilfe dazu u.a. hier im Forum z.B. in einem Tutorial und vielen Beispielen.
Dein eigentliches Problem ist m.E. gelöst.
Deshalb setze diesen Thread als gelöst und bastle an deiner Lösung.
Falls du nicht weiterkommst, veröffentliche deinen Code mit der FOR-Schleife in einem neuen Thread.
Da kann dir dann weitergeholfen werden.

cu paulepank
Bitte warten ..
Mitglied: Necroscope
09.01.2013 um 09:09 Uhr
ach ja oh nee for schleife in ner Batch.
OK wird schon schief gehen.

Dankeschön
Bitte warten ..
Mitglied: paulepank
09.01.2013 um 11:52 Uhr
Hallo,
diesen Thread dann bitte als gelöst markieren
und wozu 'ne Batch, da das Ganze doch ein einmaliger Vorgang ist.
Das kannst du alles in einer Zeile erledigen, die du uns wahrscheinlich in einem neuen Thread vorstellst.

cu paulepank
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...