在awk中格式化输出文本并在documen中打开

2024-04-25 02:39:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据集:

BRCC    hete    1   15869   105A
BRAC    he  1   1799967 956G
BCAS    he  2   7334543 369AFVC
RCA he  4   9534262 7806-14
RCA he  5   144848  1114A
RA  he  5   206118  52A
BCAVV   he  5   543304  3807TCD
BCA hoo 1   106091515   4308TDDSC
BCA hoo 1   206075  4563A
BCA hoo 1   799917  2612CDSA
BCA hoo 2   206076  513G
BCA hoom    3   16941   3113A

数据集有6列,是单独的制表符。我想格式化文本和添加标题。我的解决方案是:

awk -v OFS="\t" 'BEGIN{printf "%s\t %s\t %s\t %s\t %s\t \n" ,"TEST","HEADER","CLASS","CLASS2","SVGH" pritnf "\n" "__________________________________________________"} {printf "%s\t %s\t %s\t %s\t %s\t \n", $1,$2,$3,$4,$5}' in.txt > out.doc

但我需要将输出保存到文档并在LibreOffice中打开。但输出如下:

enter image description here

有没有什么方法可以格式化文本,使列保持在标题下,以便更好地阅读?像这样:

enter image description here

注意:我将寻求任何帮助,而不仅仅是awk解决方案。


Tags: 数据文本标题解决方案raheawkprintf
1条回答
网友
1楼 · 发布于 2024-04-25 02:39:54

听起来这就是你所需要的:

$ awk 'BEGIN{print "TEST","HEADER","CLASS","CLASS2","SVGH"} 1' file | column -t
TEST   HEADER  CLASS  CLASS2     SVGH
BRCC   hete    1      15869      105A
BRAC   he      1      1799967    956G
BCAS   he      2      7334543    369AFVC
RCA    he      4      9534262    7806-14
RCA    he      5      144848     1114A
RA     he      5      206118     52A
BCAVV  he      5      543304     3807TCD
BCA    hoo     1      106091515  4308TDDSC
BCA    hoo     1      206075     4563A
BCA    hoo     1      799917     2612CDSA
BCA    hoo     2      206076     513G
BCA    hoom    3      16941      3113A

然后在LibreOffice中使用等宽字体来显示它。要在标题行下划线:

$ awk 'BEGIN{print "TEST","HEADER","CLASS","CLASS2","SVGH"} 1' file | column -t |
    awk '{print} NR==1{gsub(/./,"_"); print}'
TEST   HEADER  CLASS  CLASS2     SVGH
_____________________________________
BRCC   hete    1      15869      105A
BRAC   he      1      1799967    956G
BCAS   he      2      7334543    369AFVC
RCA    he      4      9534262    7806-14
RCA    he      5      144848     1114A
RA     he      5      206118     52A
BCAVV  he      5      543304     3807TCD
BCA    hoo     1      106091515  4308TDDSC
BCA    hoo     1      206075     4563A
BCA    hoo     1      799917     2612CDSA
BCA    hoo     2      206076     513G
BCA    hoom    3      16941      3113A

相关问题 更多 >