Wie ersetze ich einen String mit einem Newline mit einem Bash-Skript und sed?

8

Ich habe folgende Eingabe:

%Vor%

In meinem Bash-Skript möchte ich das "@@" durch einen Zeilenumbruch ersetzen. Ich habe verschiedene Dinge mit sed versucht, aber ich habe kein Glück:

%Vor%

Letztendlich muss ich diese ganze Eingabe in Zeilen und Werte zerlegen. Vielleicht mache ich es falsch. Ich plante, das "@@" durch Zeilenumbrüche zu ersetzen und dann die Eingabe mit der Einstellung IFS = '|' um die Werte aufzuteilen. Wenn es einen besseren Weg gibt, sag mir bitte, ich bin noch ein Anfänger mit Shell-Skripten.

Danke!

    
odinsride 07.05.2014, 15:32
quelle

7 Antworten

8

hoffe, das funktioniert

%Vor%

ersetzt @@ durch neue Zeile

    
prudviraj 26.06.2014 11:54
quelle
3

Verwendung der reinen BASH-String-Manipulation:

%Vor%     
anubhava 07.05.2014 15:34
quelle
3

Ich empfehle, die Funktion tr zu verwenden

%Vor%

Zum Beispiel:

%Vor%     
itzhaki 07.05.2014 15:40
quelle
2

Wenn es Ihnen nichts ausmacht, Perl zu verwenden:

%Vor%     
Victor Henriquez 07.05.2014 21:48
quelle
1

Wie wäre es mit:

%Vor%     
Tripp Kinetics 07.05.2014 15:50
quelle
1

Endlich hat es funktioniert mit:

%Vor%

Das Hinzufügen der einfachen Anführungszeichen um \\ n schien aus irgendeinem Grund zu helfen

    
odinsride 07.05.2014 16:25
quelle
0

Dies wird mit Perl abgeschlossen und bietet einige einfache Hilfe.

%Vor%

replace_string.sh

%Vor%     
Brad Parks 22.02.2018 16:42
quelle

Tags und Links