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

发布于 2024-07-13 04:50:20 字数 93 浏览 1 评论 0原文

我有 12 列,由制表符分隔。 我怎样才能并肩加入他们?

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

I have 12 columns separated by a tab. How can I join them side-by-side?

[Added] You can also tell me other methods as AWK: the faster the better.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

撩动你心 2024-07-20 04:50:20

由于您具体询问了 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”了解更多详细信息(这取决于您的平台)。

Since you asked specifically about awk (there are tools better suited to the job), the following is a first-cut solution:

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

A more complicated and configurable solution, where you could change the number of columns used for output, would be:

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

Other possibilities, if you're not restricted to awk, are:

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

Based on your edit and comments, I suggest cut is the best tool for the job. Use "man cut", "info cut" or "cut --help" for more details (this depends on your platform).

东走西顾 2024-07-20 04:50:20

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

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

If you are just using awk to concatenate the columns I would use 'tr' and delete tab

cat file1 | tr -d '\011'>  file2
锦欢 2024-07-20 04:50:20

试试这个:

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

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

Try this:

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

I'm not an awk genius so I don't know if there's some sort of looping construct you can use.

冬天旳寂寞 2024-07-20 04:50:20

嗯,这取决于您选择的编辑器/命令。 但总的来说,归根结底就是用什么东西代替这个角色。
例如,在 vim 中:“:%s/\t//g

Well, it depends on your editor/command of choice. But generally, it boild down to replacing the character with nothing.
For example, in vim: ":%s/\t//g"

旧城空念 2024-07-20 04:50:20

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

You did not mention what tool you would like to use but any text editor would be able to replace the tab to an empty character, I guess that would work, that's what I usually do.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文