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