由於某些行的特定列中缺少一些值,我在編輯收到的文字檔案時遇到了一些問題。例如,該文件的外觀(大部分)如下:
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
這:
- 將輸入欄位分隔符號設定為單一製表符 (
-F '\t'
) - 將輸出欄位分隔符號設定為製表符 (
-v OFS='\t'
) - 檢查第三個欄位是否為空 (
$3 == ""
),如果是,則將其設為字串"none"
- 並且始終列印行 (
1
)。