加入12列的最简单方法是什么?

时间:2009-02-09 01:07:41

标签: text scripting awk

我有12个由制表符分隔的列。我如何并排加入他们?

[已添加] 您也可以告诉我其他方法为AWK:越快越好。

5 个答案:

答案 0 :(得分:5)

由于您专门询问了awk(有更适合该工作的工具),以下是首先解决方案:

awk '{print $1$2$3$4$5$6$7$8$9$10$11$12}'

一个更复杂和可配置的解决方案,您可以更改用于输出的列数:

awk -v lim=12 '{for(x=1;x<lim;x++){printf "%s",$x};print ""}'

如果你不限于awk,其他可能性是:

tr -d '\011'                     # to combine ALL columns on the line.
cut --output-delimiter='' -f1-12 # more general (1-12 or 3-7 or 1-6,9).

根据您的编辑和评论,我建议剪切是这项工作的最佳工具。使用“man cut”,“info cut”或“cut --help”了解更多详情(具体取决于您的平台)。

答案 1 :(得分:4)

如果您只是使用awk连接列,我会使用'tr'并删除标签

cat file1 | tr -d '\011'>  file2

答案 2 :(得分:0)

试试这个:

{
    print $1$2$3$4$5$6$7$8$9$(10)$(11)$(12)
}

我不是awk天才所以我不知道你是否可以使用某种循环结构。

答案 3 :(得分:0)

嗯,这取决于你选择的编辑/命令。但一般来说,它归结为用什么都不替换角色。 例如,在vim中:“:%s/\t//g

答案 4 :(得分:0)

你没有提到你想使用什么工具,但是任何文本编辑器都可以将标签替换为空字符,我想这会起作用,这就是我通常所做的。