如何使用AWK附加文本

时间:2012-04-15 04:36:26

标签: database linux unix awk db2

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

AAAA21346A  
AAAA21346A  
AAAA21346A  
AAAA21346A 
.  
.  
.  

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

我想使用awk在每行前面附上^ N ^ 1。怎么办呢?

更新

我的输出必须如下所示:

AAAA21346A^N^1
AAAA21346A^N^1
AAAA21346A^N^1
AAAA21346A^N^1
直到EOF,等等。每条记录都必须有一个换行符。

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

2 个答案:

答案 0 :(得分:2)

你想要的东西看起来很简单:

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

添加线程ID的唯一问题是决定执行此操作的算法。例如,交替也很容易:

awk '{printf "%s^N^%d\n", $0, (NF % 2) + 1}' data_file

答案 1 :(得分: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