2017-10-25 5 views
-2

Suchen Sie nach der Zeilengruppe, die mit "zone" beginnt, und fügen Sie am Anfang der vorherigen Zeile ein Wort "Heading" hinzu. Vielen Dank für Ihre Hilfe im VorausFügen Sie ein Wort am Anfang der Zeile in eine Textdatei ein

Code:

Zoning A 
    zone zonename1 
    zone zonename2 
    zone zonename3 

    Team B 
    zone zonename4 
    zone zonename5 

gewünschte Ausgabe:

perl -000 -pe 's/^/Heading/;s/\s+/ /' inputfile 
Heading Zoning A 
    zone zonename1 
    zone zonename2 
    zone zonename3 

Heading Team B 
    zone zonename4 
    zone zonename5 
+1

Dies ist kein Schreiben von Code-Service, zeigen Sie den Code uns, dass Sie versucht haben, und wo es versagt. – gonutz

Antwort

2

Mit awk:

 Heading Zoning A 
     zone zonename1 
     zone zonename2 
     zone zonename3 

    Heading Team B 
     zone zonename4 
     zone zonename5 
+1

Großartig! Hat funktioniert. Danke für Ihre Hilfe :) –

1

Wenn Sie perl nutzen könnten. Solange die Gruppenüberschrift nicht mit Wort Zone startet:

$ awk ' 
/^ *zone/&&p!~/^ *zone/ { 
    sub(/^ */,"&Heading ",p) 
} 
NR>1 { print p } 
{ p=$0 } 
END { print p } 
' file 
    Heading Zoning A 
    zone zonename1 
    zone zonename2 
    zone zonename3 

    Heading Team B 
    zone zonename4 
    zone zonename5 
Verwandte Themen