• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

mit sed : durch zeilenumbruch ersetzen

hallo

ich möchte innerhalb der /etc/shadow die doppelpunkte durch zeilenumbrüche ersetzen und am ende jeder zeile von /etc/shadow 2 zeilenumbrüche einfügen.

es soll also statt so (auszug):

at:!:13299:0:99999:7:::
beagleindex:!:13299:0:99999:7:::

so aussehen:
-----------------------------------------------------------------------------------------------------
at
!
13299
0
99999
7




beagleindex
!
13299
0
99999
7



-----------------------------------------------------------------------------------------------------

bisher habe ich "more /etc/shadow | sed `s/:/\n/g`"
eingegeben. also sollten doch zumindest die doppelpunkte durch zeilenumbrüche ersetzt sein. es bricht aber mit einer fehlerausgabe ab.

was mache ich falsch und wie kann ich die zeile so erweitern das sed außerdem am ende jeder zeile (von der urspünglichen ausgabe von /etc/shadow) zwei zeilenumbrüche macht?
 
A

Anonymous

Gast
ich nehme mal an dein quoting ist falsch.
aber bitte das more Datei | das lassen wir weg, (auch wenn TeXpert uns scheinbar nicht mehr daran erinnert)
also zB.
Code:
sed 's/:/\n/g' /etc/shadow
oder
Code:
 < /etc/shadow  sed 's/:/\n/g'
Zusätzlich noch 2 Leerzeilen bekommst du zB folgend
Code:
sed 's/:/\n/g; s/$/\n\n/g' /etc/shadow

robi
 
OP
Z

Zittzewitz

Newbie
@ robi&jengelh:

danke, es klappt!

@robi:
ich werde das nächste mal daran denken meinen code ordentlich zu formatieren :oops:


@jengelh:
deine perl zeile macht am ende nur einen zeilenumbruch. ist aber auch nicht so wichtig, da ich jetzt erst mal die batch ein bischen auf die reihe bekommen möchte und ich mich danach erst an perl trauen werde.
 

regexer

Advanced Hacker
Zittzewitz schrieb:
ich möchte innerhalb der /etc/shadow die doppelpunkte durch zeilenumbrüche ersetzen
Solange du nur ein Zeichen durch ein anderes ersetzen willst wäre das Linux-Bordmittel "tr" noch eine Alternative ...
 
Oben