Ich verwende den Befehl unten, um zwei Dateien mit den ersten zwei Spalten zu verbinden.
%Vor%Der AWk-Befehl verwendet standardmäßig Leerzeichen als Trennzeichen. Aber meine Datei kann einen einzelnen Zwischenraum zwischen zwei Wörtern enthalten, z.
Datei 1:
%Vor%Datei 2:
%Vor%Ich möchte die Ergebnisdatei als;
%Vor%Irgendwelche Hinweise?
awk unterstützt einen regulären Ausdruck als Wert von FS
, sodass Sie einen regulären Ausdruck angeben können, der mindestens zwei Leerzeichen entspricht. So etwas wie -F '[[:space:]][[:space:]]+'
.
Sie verwenden Felder mit fester Breite, daher sollten Sie gnu awk FIELDWIDTHS (oder ähnlich) verwenden, um die Felder zu trennen, z. Wenn das 2. Feld die 15 Zeichen von Char 8 bis Char 23 einschließlich in dieser Datei ist:
%Vor%Jede Lösung, die auf einer bestimmten Anzahl von Leerzeichen zwischen Feldern beruht, wird fehlschlagen, wenn Sie 1 oder 0 Leerzeichen zwischen Ihren Feldern haben.
Wenn Sie führende / nachfolgende Leerzeichen aus Ihrem Zielfeld entfernen wollen:
%Vor%