-1

无法找到解决方案,即使已经提出了这个问题的数千种变体。

我想使用 awk 或 sed 将一列 1 添加到制表符分隔的文件中。

该文件将有大约 2000 万行,所以高效的东西会很好。

转这个:

a   b   c
r   j   k
i   t   w

进入这个:

a   b   c   1
r   j   k   1
i   t   w   1
4

3 回答 3

3

一种简单的方法。将输入和输出字段分隔符修改为选项卡。变量保留最后一NF列,因此增加一个新列,分配1数字并打印:

awk 'BEGIN { FS = OFS = "\t" } { $(NF+1) = 1; print $0 }' infile

它产生:

a   b   c   1
r   j   k   1
i   t   w   1
于 2013-07-21T13:42:03.283 回答
3

的代码:

sed 's/$/&\t1/' file
于 2013-07-21T13:46:48.817 回答
1

假设您使用awk -F'\t'而不仅仅是awk

{
    print $0 FS 1;
}

如果您没有使用 -F 选项,请替换FS 1"\t1".

于 2013-07-21T13:42:00.483 回答