我有 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 ""}'
如果您不限于 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
”了解更多详细信息(这取决于您的平台)。
如果您只是使用 awk 连接列,我将使用 'tr' 并删除选项卡
cat file1 | tr -d '\011'> file2
试试这个:
{
print $1$2$3$4$5$6$7$8$9$(10)$(11)$(12)
}
我不是awk
天才,所以我不知道您是否可以使用某种循环结构。
好吧,这取决于您选择的编辑器/命令。但总的来说,它归结为什么都没有替换角色。例如,在 vim 中:“ :%s/\t//g
”
您没有提到您想使用什么工具,但是任何文本编辑器都可以将制表符替换为空字符,我想这会起作用,这就是我通常做的。