Zeichenfolge für fehlenden Wert einfügen

Zeichenfolge für fehlenden Wert einfügen

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, prbwird 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 awkgilt Folgendes, vorausgesetzt, Ihre Felder sind tatsächlich durch Tabulatoren getrennt:

awk -F '\t' -v OFS='\t' '$3 == ""{$3 = "none"};1' input.txt

Das:

  1. Setzt das Eingabefeldtrennzeichen auf einen einzelnen Tabulator ( -F '\t')
  2. Setzt den Ausgabefeldtrenner auf einen Tabulator ( -v OFS='\t')
  3. Überprüft, ob das dritte Feld leer ist ( $3 == "") und setzt es ggf. auf den String"none"
  4. Und druckt immer die Zeile ( 1).

verwandte Informationen