Text 连接12列的最简单方法是什么?

Text 连接12列的最简单方法是什么?,text,scripting,awk,Text,Scripting,Awk,我有12列,由一个选项卡分隔。我怎样才能肩并肩地加入他们 [新增]您还可以告诉我其他方法,如AWK:越快越好 如果您只是使用awk连接列,我将使用'tr'和delete选项卡 cat file1 | tr -d '\011'> file2 试试这个: { print $1$2$3$4$5$6$7$8$9$(10)$(11)$(12) } 我不是一个awk天才,所以我不知道你是否可以使用某种循环结构。因为你特别询问了awk(有更适合这项工作的工具),以下是第一个解决方案: aw

我有12列,由一个选项卡分隔。我怎样才能肩并肩地加入他们


[新增]您还可以告诉我其他方法,如AWK:越快越好

如果您只是使用awk连接列,我将使用'tr'和delete选项卡

cat file1 | tr -d '\011'>  file2
试试这个:

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

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

因为你特别询问了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 ""}'

根据你的编辑和评论,我建议cut是这项工作的最佳工具。有关更多详细信息,请使用“
man cut
”、“
info cut
”或“
cut--help
”(这取决于您的平台)。

当然,这取决于您选择的编辑器/命令。但一般来说,它可以归结为用零替换角色。
例如,在vim中:“
:%s/\t//g

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

@UT,您有什么理由必须使用awk吗?不,我想要最简单的方法。awk是链锯,你想要一个面包屑:-)。改为尝试剪切,它更适合于制表符分隔的输入和重新排列/组合列。在问题中添加了一些标记,我希望它们是合适的。上面没有提到,它只是删除了所有的制表符,并为所有的否决票保留了所有其他字符-我知道OP询问了关于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).