插入缺失值的字串

插入缺失值的字串

由於某些行的特定列中缺少一些值,我在編輯收到的文字檔案時遇到了一些問題。例如,該文件的外觀(大部分)如下:

ID10    dad    prbM    ATGD
ID11    mom    prbF    CDSF
ID12    mom        CGDS
ID13    dad    prbF    FSDD
ID14    mom        FDSF

正如您所看到的,有時prb並非每個條目都提供 。我發現當條目不存在時,有兩個製表符分隔。有沒有辦法在選項卡之間插入字串?例如,這樣的事情:

ID10    dad    prbM    ATGD
ID11    mom    prbF    CDSF
ID12    mom    none    CGDS
ID13    dad    prbF    FSDD
ID14    mom    none    FDSF

答案1

使用awk,假設您的欄位實際上是用製表符分隔的:

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

這:

  1. 將輸入欄位分隔符號設定為單一製表符 ( -F '\t')
  2. 將輸出欄位分隔符號設定為製表符 ( -v OFS='\t')
  3. 檢查第三個欄位是否為空 ( $3 == ""),如果是,則將其設為字串"none"
  4. 並且始終列印行 ( 1)。

相關內容