Beim Bearbeiten einer Textdatei, die ich erhalten habe, sind mir Probleme aufgetreten, da in einer bestimmten Spalte für einige Zeilen Werte fehlten. So sieht die Datei beispielsweise (größtenteils) aus:
ID10 dad prbM ATGD
ID11 mom prbF CDSF
ID12 mom CGDS
ID13 dad prbF FSDD
ID14 mom FDSF
Wie Sie sehen, prb
wird manchmal nicht für jeden Eintrag das bereitgestellt. Ich habe festgestellt, dass es zwei Tabulatoren gibt, wenn ein Eintrag nicht vorhanden ist. Gibt es eine Möglichkeit, eine Zeichenfolge zwischen den Tabulatoren einzufügen? Zum Beispiel so etwas:
ID10 dad prbM ATGD
ID11 mom prbF CDSF
ID12 mom none CGDS
ID13 dad prbF FSDD
ID14 mom none FDSF
Antwort1
Mit awk
gilt Folgendes, vorausgesetzt, Ihre Felder sind tatsächlich durch Tabulatoren getrennt:
awk -F '\t' -v OFS='\t' '$3 == ""{$3 = "none"};1' input.txt
Das:
- Setzt das Eingabefeldtrennzeichen auf einen einzelnen Tabulator (
-F '\t'
) - Setzt den Ausgabefeldtrenner auf einen Tabulator (
-v OFS='\t'
) - Überprüft, ob das dritte Feld leer ist (
$3 == ""
) und setzt es ggf. auf den String"none"
- Und druckt immer die Zeile (
1
).