我有一个tab-delim文件,看起来像这样
10 7.98862e-05
10 cellular organisms; Bacteria; Proteobacteria; Betaproteobacteria; Burkholderiales; Burkholderiaceae; Ralstonia; Ralstonia solanacearum 0.000159772
10 0.000207704
10 cellular organisms; Bacteria; Terrabacteria group; Firmicutes; Clostridia; Clostridiales; Clostridiaceae; Clostridium; Clostridium sp. C105KSO15 0.00092668
10 9.58635e-05
10 0.000191727
10 0.000127818
10 cellular organisms; Bacteria; Terrabacteria group; Firmicutes; Clostridia; Clostridiales; Peptostreptococcaceae; Clostridioides; Clostridioides difficile 0.0 0142198
10 cellular organisms; Bacteria; Terrabacteria group; Firmicutes; Clostridia; Clostridiales; Clostridiaceae; Clostridium; Clostridium sp. C105KSO15 0.00268418
它应该是三列,但是第二列(细菌分类学)缺少一些行。对于这些行,我想将数字移动到第三列并插入一些文本(例如Unclassified
)。
我一直在尝试修改我在网上发现的一些命令,以便在第二列中的任何值之前插入Unclassified\t
,该值以数字开头但无法使其正常工作。
非常感谢任何帮助。
答案 0 :(得分:-1)
试试这行:
awk -F'\t' -v OFS="\t" 'NF==2{$3=$2;$2="Unclassified"}7' file
答案 1 :(得分:-1)
你也可以试试这个sed
sed -E 's/([^\t]*\t)([0-9]\.[0-9].*$)/\1Unclassified\t\2/' infile