Ich möchte alle Zeilenumbruchzeichen entfernen, die nach einer bestimmten Zeichenfolge auftreten, und sie durch ein Tabulatorzeichen ersetzen. Sagen Sie zum Beispiel meine sample.txt ist wie folgt
%Vor%Ich möchte, dass es
ist %Vor%Wie mache ich das über bash / awk / sed? Hilf mir.
Hier ist wie:
%Vor% Mehr darüber, warum simple sed 's/foo\n/foo\t/g'
hier nicht funktioniert: Ссылка
Die sed
-Version sieht so aus
Wenn dies alles ist, was Sie in Ihrem sed-Befehl tun möchten, können Sie das obige auf einen Einzeiler vereinfachen:
%Vor% Erklärung: N
hängt eine neue Zeile und die nächste Eingabezeile an; y/\n/\t
ersetzt alle Zeilenumbrüche durch Tabulatoren, oder s/\n/\t/
ersetzt den ersten Zeilenumbruch durch einen Tabulator.
Beachten Sie, dass, da sed
zeilenorientiert ist, die Zeilenumbrüche in der Eingabe als Zeilentrennzeichen und nicht als Teil einer Zeile betrachtet werden (im Gegensatz zu Perl).