Unix 拆分数据以从增量缩进重新排列

Unix 拆分数据以从增量缩进重新排列,unix,awk,Unix,Awk,我很难想出重新安排的方法 一直在滚动浏览 似乎什么都不管用,所以我尝试了awk awk '{print substr($0,5,76)}' input.txt 但它在每个部分都有增量价值 input.txt H0007 LINE H0007 WILL . H0007

我很难想出重新安排的方法

一直在滚动浏览

似乎什么都不管用,所以我尝试了awk

awk '{print substr($0,5,76)}' input.txt
但它在每个部分都有增量价值

input.txt

H0007 LINE 
H0007                                                    WILL .        
H0007                                                                           
H0007 LINE 
H0007                                                    WILL .        
H0007                                                                           \00\00\00\00\00\00\00\00
\B0\00\00H0007 LINE 
TAPEH0007                                                    WILL .    
    H0007                                                                       
    H0007 LINE 
ILL H0007                                                                       
    H1406          0          0     0.000     0.000   -38.3001.00000000         
    H1014SY-STR4  21                                                            
    H1214                                                                       
    H1414          0          0     0.000     0.000   -27.1001.00000000         
    H1015SY-STR4  21                                                            
    \00\00\00\00\D4\00\00\9C\00\00H1215                                                           
                H1415          0          0     0.000     0.000   -21.6001.00000
000             H1016SY-STR4  21                                                
                L0110  41553.059N  848 6.304E 471350.00 478000.00               
                L0210  41552.846N  83822.374E 471350.00 460000.00               
                E0010RRM-045             1721    172391 19 14340.1252.10   9.410
1000000         E0110  41551.988N  848 3.310E  471317.06  477907.81   0.0   0.02
67.73   0.0     E1010                         2  1  26738.40 -4.80001 3  1  1659
2.40 -3.30001   \00\00\00\00\B0\00\00؞\00\00E1010 4  1  15662.30 -1.30001 5  1  24356.60 -3.50001
 6  1  38672.30 -3.80001   E1010                        14  2  25335.00 -1.60001
15  2  13811.50 -3.00001   E101016  2  13352.30 -1.2000117  2  22583.50 -4.40001
18  2  40133.20  1.80001   E30111 79.5   77.43                                  
                           E30122 68.7   77.52                                  
                           E30131 72.4   21.90  0.012756.01                     
                           E2111  20258.4  40257.2  60258.2  80259.7 100259.9 12
0259.8 140260.2 160259.9   E2211  20  4.1  40  4.2  60  3.3  80  3.2 100  4.5 12
它有二进制头“\00\00*+\00\00\9C”,是字符编码吗

预期结果

H0007                                                                           
H0007 LINE 
H0007                                                    WILL .        
H0007                                                                           
H0007 LINE 
H0007                                                    WILL .        
H0007
H0007 LINE 
H0007                                                    WILL .        
H0007                                                                       
H0007 LINE  
H0007                                                                       
H1406          0          0     0.000     0.000   -38.3001.00000000         
H1014SY-STR4  21                                                      
H1214                                                                     
H1414          0          0     0.000     0.000   -27.1001.00000000    
H1015SY-STR4  21                                                     
H1215           
H1415          0          0     0.000     0.000   -21.6001.00000000             
H1016SY-STR4  21                         
L0110  41553.059N  848 6.304E 471350.00 478000.00        
L0210  41552.846N  83822.374E 471350.00 460000.00       
E0010RRM-045             1721    172391 19 14340.1252.10   9.4101000000         
E0110  41551.988N  848 3.310E  471317.06  477907.81   0.0   0.0267.73   0.0     
E1010                         2  1  26738.40 -4.80001 3  1  16592.40 -3.30001 
E1010 4  1  15662.30 -1.30001 5  1  24356.60 -3.50001 6  1  38672.30 -3.80001   
E1010                        14  2  25335.00 -1.6000115  2  13811.50 -3.00001   
E101016  2  13352.30 -1.2000117  2  22583.50 -4.4000118  2  40133.20  1.80001   
E30111 79.5   77.43                                                             
E30122 68.7   77.52                                                             
E30131 72.4   21.90  0.012756.01                                                
E2111  20258.4  40257.2  60258.2  80259.7 100259.9 120259.8 140260.2 160259.9   
E2211  20  4.1  40  4.2  60  3.3  80  3.2 100  4.5 12
请告诉我您对GNU awk的看法

awk -v RS='[HLE][0-9]{4}[^\n]*\n' '{printf "%s", RT}' file
记录分隔符
RS
设置为捕获所需的模式,假设模式
E
H
L
后面有4位数字。
唯一的语句是打印捕获的记录分隔符
RT

使用sed:

sed 's/[^HLE]*\([HLE][0-9]\{4\}.*\)/\1/' file

这个sed替换删除了字符
H
L
E
后面跟4个数字之前的所有内容。

我删除了Python标记,因为它似乎与您的问题无关。如果相关的话,请发布您正在使用的Python代码,并重新添加标记。谢谢,实际上文本是以字节打印的,您有什么建议来恢复对齐方式吗