很抱歉,如果我在搜索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列。我希望你们现在明白了。
答案 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