ich ein paar Zeilen, die wie folgt aussehen:ein Wort in mehreren Zeilen in eine andere Spalte verschieben
some_command -arg1 -arg2 ITEM -arg3
Ich brauche ITEM
direkt nach some_command
Die Datei Kommentare usw. nicht zu bewegen, so Ich muss die obige Operation nur auf Zeilen ausführen, die mit some_command
beginnen.
Es gibt fast 1000 solcher Zeilen und ich kann es nicht manuell tun. Selbst die Verwendung des visuellen Block-Modus wird schwierig sein, da es keine Ausrichtung gibt.
Ich denke awk
wird mein Freund hier sein. Die Position von ITEM
ist fest, so kenne ich die Spalte Nummer. Aber wie kann ich awk
zum Drucken $1
dann $6
und dann alle anderen Spalten von $2
bis $NF
außer $6
? Und tun Sie das auch nur auf Linien beginnend mit some_command
?
'awk‚/^some_command/{$ 1 = $ 1 "" $ 4; $ 4 = ""; } 1'' –
@WilliamPurselell: Vielen Dank für netten Code, IMHO machen $ 4, da NULL Platzprobleme verursachen könnte, obwohl es überhaupt nicht getestet wurde. – RavinderSingh13
@WilliamPurell ich sehe, was du da gemacht hast! Kluger Kerl bist du! funktioniert perfekt .. RavinderSingh13 du hast Recht, es fügt einen zusätzlichen Platz hinzu; aber das ist kein Problem für mich .. – shikhanshu