我有12个由制表符分隔的列。我如何并排加入他们?
[已添加] 您也可以告诉我其他方法为AWK:越快越好。
答案 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)
你没有提到你想使用什么工具,但是任何文本编辑器都可以将标签替换为空字符,我想这会起作用,这就是我通常所做的。