文件放入表awk

问题描述 投票:0回答:1

我正在尝试通过读取文件来制作表。

这是我要编译的代码示例:

FHEAD|1|PRMPC|20200216020532|1037|S
TMBPE|2|MOD
    TPDTL|3|72810|1995019|11049-|11049-|Dcto 20|0|5226468|20200216000001|20200222235959|2||1||||
        TPGRP|4|5403307
        TGLIST|5|5031472|1|||
        TLITM|6|101055590
            TPDSC|7|0|||-20||2|1|
        TPGRP|8|5403308
        TGLIST|9|5031473|0|||
    TPDTL|13|10728|1995021|11049-|11049-|Dcto 30|0|5226469|20200216000001|20200222235959|2||1||||
        TPGRP|14|5403310
        TGLIST|15|5031475|1|||
            TLITM|16|210000041
            TLITM|17|101004522
                TPDSC|113|0|||-30||2|1|
        TPGRP|114|5403309
        TGLIST|115|5031474|0|||
            TLITM|116|101047933
            TLITM|117|101004681
            TLITM|118|101028161
                TPDSC|119|0|||-25||2|1|
TPISR|214|101004225|2350|EA|20200216000000|COP|
TTAIL|1135
FTAIL|1136|1134

我尝试开发代码,但它在一行中返回所有标签

for filename in "$input"*.dat; 
    do
    echo "$filename">>"$files"
    a=`awk -F'|' '$1=="FHEAD" && $5!=""{print $5}' "$filename"`
    b=`awk -F'|' '$1=="TPDTL" && $3!=""{print $3}' "$filename"`
    c=`awk -F'|' '$1=="TPDTL" && $4!=""{print $4}' "$filename"`
    d=`awk -F'|' '$1=="TPDTL" && $10!=""{print $10}' "$filename"`
    e=`awk -F'|' '$1=="TPDTL" && $11!=""{print $11}' "$filename"`
    f=`awk -F'|' '$1=="TPDSC" && $6!=""{print $6}' "$filename"`
    g=`awk -F'|' '$1=="TLITM" && $3!=""{print $3}' "$filename"`

例如:

echo -e ${d}

20200216000001 20200216000001

我想要类似picture的东西。

有人可以帮助我吗?

提前感谢

shell awk tags
1个回答
0
投票

假设:

© www.soinside.com 2019 - 2024. All rights reserved.