0

抱歉,如果我在搜索 SO 时错过了这个。我有一个具有以下结构的文本文件

AAAA21346A  
AAAA21346A  
AAAA21346A  
AAAA21346A 
.  
.  
.  

直到超过 50 万条记录(半百万条记录)。

我想在每一行前面附加 ^N^1 使用awk. 怎么做到呢?

更新:

我的输出必须如下所示:

AAAA21346A^N^1
AAAA21346A^N^1
AAAA21346A^N^1
AAAA21346A^N^1

依此类推,直到 EOF。每条记录后必须有一个换行符。

**更多解释* ** *
我使用的是 db2 和 linux,因此我想到了 Awk。我想要做的是,我需要使用 db2 中的“加载自”命令并使用 ^ 作为分隔符将数据插入到具有 3 列的表中。但由于文本文件只包含一列,我想附加 ^N^1 以使其成为 3 列。我希望你们现在明白了。

4

2 回答 2

2

你想要的似乎很容易:

awk '{print $0 "^N^1"}' data_file

添加线程 ID 的唯一问题是决定这样做的算法。例如,交替也很容易:

awk '{printf "%s^N^%d\n", $0, (NF % 2) + 1}' data_file
于 2012-04-15T05:08:39.803 回答
1

以下是使用 AWK 的更多方法:

awk 'BEGIN { ORS = "^N^1\n"} 1' inputfile

或者,更明确地说:

awk 'BEGIN { ORS = "^N^1\n"} {print}' inputfile

或者

awk 'BEGIN { OFS = "^"} {$2 = "N"; $3 = 1}1' inputfile

或者

awk 'BEGIN { OFS = "^"} {$2 = "N"; $3 = 1; print}' inputfile
于 2012-04-15T13:38:28.173 回答