AWK:如何删除由混合分隔符分隔的列?

AWK: How to remove a column deliminated by mixed delimeters?

我有一个包含 100,000 行的 table。格式是这样的:

abc '\t' gi| a b c  d e

abc 列由制表符分隔,而其他列由 space.I 分隔想要删除列 'gi|' 并保留所有其他列。我试过使用制表符或 |作为我的分隔符,但效果不佳。有什么想法吗?

您可以使用 awk 的 sub 函数。

awk '{sub(/.*/,"",)}1' file

只需为第 2 列变量赋一个空值。

awk '{=""}1' file

为什么不简单地忽略这些字段?

sed 's/\t[^\t ]* /\t/' file

将删除第一个制表符之后的文本,直到 space。