首页 > 解决方案 > 有条件地将列添加到文件 awk

问题描述

我有一个看起来像这样的文件

--- 1:14567 14567 A C 0 0 1
--- 1:32424 34424 A C 0 0 1
rsid124 35245 C G 0 0 1

我想要的是---仅在那些还没有的行中添加第一个字段()---

所需的输出将是这样的

--- 1:14567 14567 A C 0 0 1
--- 1:32424 34424 A C 0 0 1
--- rsid124 35245 C G 0 0 1

如果更容易,解决方法是---使用 vim 或其他文本编辑器删除,但我想知道如何根据行添加列

标签: awk

解决方案


释义:

我想要的是---仅在那些还没有它的行中添加第一个字段。

这很容易做到awk,只需使用:

awk '$1 != "---" { print "--- "$0 } { print }" inputFile >outputFile

这将修改第一列不符合预期的所有行,并在其前面加上所需的字符串。所有其他行将按原样打印。


推荐阅读