gpt4 book ai didi

linux - 以特定方式重新格式化文件内容

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:11 25 4
gpt4 key购买 nike

您好,我有以下文件

+--------------------------+-----------------------+-----------------------+- +
| col_name | data_type | comment |
+--------------------------+-----------------------+-----------------------+--+
| id | string | |
| name | string | |
| filename | string | |
| loaddate | string | |
| recordid | string | |
| | NULL | NULL |
| # Partition Information | NULL | NULL |
| # col_name | data_type | comment |
| | NULL | NULL |
| fname | string | |
+--------------------------+-----------------------+-----------------------+--+

我想创建这个输出

id,name,filename,loaddate,recordid

除了页眉、页脚和分区信息外,基本上都是用逗号分隔的列名。

使用两个 awk 和一个 paste 来实现所需的输出并使用 paste 创建一行,使用一个临时文件。

awk 'NR>3 {l[NR] = $0} END {for (i=1; i<=NR-3; i++) print l[i]}' g.txt > t.t
awk '{if (substr($2,3,1) != "") print $2}' t.t | paste -s -d ,

问题是如何在一行命令中完成此操作?

最佳答案

应该这样做:

awk 'NR>3 && NR<9 {if (substr($2,1,1) != "") {if(length(a) == 0) {a=$2} else {a=a","$2}}} END {print a}' a='' g.txt

输出是:

id,name,filename,loaddate,recordid

关于linux - 以特定方式重新格式化文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36321397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com