0

我有 12 列由选项卡分隔。我怎样才能并排加入他们?

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

4

5 回答 5

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).

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

于 2009-02-09T01:55:38.737 回答
4

如果您只是使用 awk 连接列,我将使用 'tr' 并删除选项卡

cat file1 | tr -d '\011'>  file2
于 2009-02-09T01:10:23.073 回答
0

试试这个:

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

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

于 2009-02-09T01:15:09.380 回答
0

好吧,这取决于您选择的编辑器/命令。但总的来说,它归结为什么都没有替换角色。例如,在 vim 中:“ :%s/\t//g

于 2009-02-09T01:56:54.473 回答
0

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

于 2009-02-09T03:01:19.483 回答