【问题标题】:how to use awk to parse test file on sun solaris如何使用 awk 解析 sun solaris 上的测试文件
【发布时间】:2020-08-23 16:38:44
【问题描述】:

我想在 sun solaris 上使用 awk 解析文本文件,并且在基因组终端 2.6.1 上执行。

我在论坛的支持下开始使用下面的代码。

从第一部分开始,然后我们将进入其他部分。

下面的代码只打印 ADD IP= A|B|C 但没有引号(输出文件中的引号是强制性的)。

有人可以帮我吗?

 nawk -v s1="\" ' /^IPDATA/ && /IPID .*/{ if(FNR>1) print s1 "ADD IP" s1 "="s1 $NF OFS s1 }' test 

注意:在示例中,Ref 是 IPREF 行的总和,我们有三个:[2] && [2] && [1]。

示例文本文件实际上很大,但我已对其进行了总结:

IPDATA=A                IPID A            
IPDATA=A                IPREF   [2] =     
--- IPREF = VRID=A_1                      
--- IPREF = VRID=A_2                      
                                          
IPDATA=B                IPID B            
IPDATA=B                IPREF   [2] =     
--- IPREF = VRID=B_1                      
--- IPREF = VRID=B_2                      
                                          
IPDATA=C               IPID C             
IPDATA=C               IPREF    [1] =     
--- IPREF = VRID=C_1 

预期输出:

"ADD IP=A "              
show                     
(                        
set "ELEM =1"            
id "A"                   
MT POL                   
M1 no                    
M2  5                    
AD  2                    
Ref sum of IPREF 2       
"Type vlan=VRID=A_1"     
"Type vlan=VRID=A_2"     
)                        
"ADD IP=B "              
show                     
(                        
set "ELEM =1"            
id "B"                   
MT POL                   
M1 no                    
M2  5                    
AD  2                    
 Ref sum of IPREF  2     
"Type vlan=VRID=B_1"     
"Type vlan=VRID=B_2"     
)                        
"ADD IP=C "              
show                     
(                        
set "ELEM =1"            
Id "C"                   
MT POL                   
M1 no                    
M2  5                    
AD  2                    
Ref sum of IPREF  1      
"Type vlan=VRID=C_1"     
) 

谢谢

【问题讨论】:

  • 您的预期输出不清楚,请告诉我们获取此输出的逻辑。

标签: awk solaris


【解决方案1】:

以下代码仅适用于第一部分和第三部分:

  nawk -v s1="\" ' /^IPDATA/ && /IPID .*/{ if(FNR>1){  print ")"  }print "ADD IP="  $NF  ORS "show\n" "(\n" "id="  $NF  "\n" } /^--- IPREF/{ print s1 "Type vlan="$NF s1 }  ' file1

输出如下:

ADD IP=A
show
(
id=A

Type vlan=VRID=A_1
Type vlan=VRID=A_2
)
ADD IP=B
show
(
id=B

Type vlan=VRID=B_1
Type vlan=VRID=B_2
)
ADD IP=C
show
(
id=C

Type vlan=VRID=C_1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多