插入缺失值的字符串

插入缺失值的字符串

由于某些行的特定列中缺少一些值,我在编辑收到的文本文件时遇到了一些问题。例如,该文件的外观(大部分)如下:

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)。

相关内容