漂亮地打印空格分隔的文件

use*_*782 2 bash formatting awk

我有一个来自 R 的文件。它基本上是write.table使用 as delimiter 命令的输出" "。该文件的示例如下所示:

file1.txt
5285 II-3 II-2 2 NA NA NA NA 40 NA NA c.211A>G
8988 III-3 III-4 1 NA NA NA NA NA NA NA c.211A>G
8F412 III-3 III-4 2 NA NA 28 NA NA NA NA c.211A>G
4H644 III-3 III-4 2 NA NA NA NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)

我需要得到的是一个非常特定格式的新文件,基本上我需要使用空格对齐所有列,我不能使用制表符。

所需的输出将是

5285   II-3   II-2  2 NA NA NA NA 40 NA NA c.211A>G
8988   III-3  III-4 1 NA NA NA NA NA NA NA c.211A>G
8F412  III-3  III-4 2 NA NA 28 NA NA NA NA c.211A>G
4H644  III-3  III-4 2 NA NA NA NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)

因此,在第一行5285和之间II-3,将有 3 个空格,而在8F412第三III-3行 和 之间,只有两个空格。第一个树字段的长度可以不同,但​​是其余列的长度始终是固定的(两个字符),但最后一个可以是 12 个字符

我可以在文本编辑器中执行此操作,但我有一个非常大的文件,我想使用bash,awkR

Jam*_*own 5

使用column

$ column -t file
5285   II-3   II-2   2  NA  NA  NA  NA  40  NA  NA  c.211A>G
8988   III-3  III-4  1  NA  NA  NA  NA  NA  NA  NA  c.211A>G
8F412  III-3  III-4  2  NA  NA  28  NA  NA  NA  NA  c.211A>G
4H644  III-3  III-4  2  NA  NA  NA  NA  NA  NA  NA  NA
Run Code Online (Sandbox Code Playgroud)