shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Dividir arquivo em 02 colunas iguais


From: nerobarrabas
Subject: Dividir arquivo em 02 colunas iguais
Date: Thu, 08 Nov 2012 22:35:04 -0000
User-agent: eGroups-EW/0.82

Mestres,
Tenho o seguinte arquivo:

<K>  
--------------------------------------------------------------------
<K> |------------------- Khomp Errors Counters on Links -----------------|
<K> |--------------------------------------------------------------------|
<K> |----- Link '0' on board '0' -----||----- Link '1' on board '0' -----|
<K> |---------------------------------||---------------------------------|
<K> |       Error type       | Number ||       Error type       | Number |
<K> |---------------------------------||---------------------------------|
<K> |        Changes to lock | 6      ||        Changes to lock | 10     |
<K> |         Lost of signal | 22     ||         Lost of signal | 53     |
<K> |     Alarm notification | 0      ||     Alarm notification | 0      |
<K> |          Lost of frame | 8      ||          Lost of frame | 46     |
<K> |     Lost of multiframe | 13     ||     Lost of multiframe | 55     |
<K> |           Remote alarm | 3      ||           Remote alarm | 16     |
<K> |             Slip alarm | 1      ||             Slip alarm | 616    |
<K> |                   PRBS | 0      ||                   PRBS | 0      |
<K> |             Wrong bits | 0      ||             Wrong bits | 0      |
<K> |       Jitter variation | 0      ||       Jitter variation | 0      |
<K> |    Frames without sync | 0      ||    Frames without sync | 0      |
<K> |      Multiframe Signal | 0      ||      Multiframe Signal | 0      |
<K> |            Frame error | 39     ||            Frame error | 112    |
<K> |      Bipolar violation | 78     ||      Bipolar violation | 18616  |
<K> |             CRC4 error | 0      ||             CRC4 error | 0      |
<K>  --------------------------------------------------------------------


A primeira linha tem esses caracteres estranhos [0;37;40m<K> e a última esses 
[0m 
Preciso pegar os valores centrais das duas colunas e mandar para 02 arquivos, 
deixando texto puro.
Consegui fazer e ficou assim:

#Arquivo1:

Changes to lock  6      
Lost of signal  22     
Alarm notification  0      
Lost of frame  8      
Lost of multiframe  13     
Remote alarm  3      
Slip alarm  1      
PRBS  0      
Wrong bits  0      
Jitter variation  0      
Frames without sync  0      
Multiframe Signal  0      
Frame error  39     
Bipolar violation  78     
CRC4 error  0      

#Arquivo 2:

Changes to lock  10     
Lost of signal  53     
Alarm notification  0      
Lost of frame  46     
Lost of multiframe  55     
Remote alarm  16     
Slip alarm  616    
PRBS  0      
Wrong bits  0      
Jitter variation  0      
Frames without sync  0      
Multiframe Signal  0      
Frame error  112    
Bipolar violation  18616  
CRC4 error  0

Fiz o seguinte script, mas acho que poderia ser melhorado. Vejam:

#!/bin/bash
comando=$(/usr/sbin/comando | sed 's/<K>//')
var1=$(printf "$comando" | sed 's/||/\#/' | cut -d"#" -f1)
var1=$(printf "$var1" | sed 's/-//g')
var1=$(printf "$var1" | sed '$d')                  
var1=$(printf "$var1" | sed 's/|//g')
var1=$(printf "$var1" | sed 's/Khomp Errors Counters on Links//g')
var1=$(printf "$var1" | sed 's/Error type        Number//g')
var1=$(printf "$var1" | sed 's/^ \+//')
var1=$(printf "$var1" | sed 's/^ \+//')
var1=$(printf "$var1" | awk 'NF>0')
var1=$(printf "$var1" | sed '1,2d')
printf "$var1" > arquivo1.txt

var2=$(printf "$comando" | sed 's/||/\#/' | cut -d"#" -f2)
var2=$(printf "$var2" | sed 's/-//g')
var2=$(printf "$var2" | sed '$d')                  
var2=$(printf "$var2" | sed 's/|//g')
var2=$(printf "$var2" | sed 's/Khomp Errors Counters on Links//g')
var2=$(printf "$var2" | sed 's/Error type        Number//g')
var2=$(printf "$var2" | sed 's/^ \+//')
var2=$(printf "$var2" | sed 's/^ \+//')
var2=$(printf "$var2" | awk 'NF>0')
var2=$(printf "$var2" | sed '1,2d')
printf "$var2" > arquivo2.txt 

Alguém poderia analisar e tentar sintetizar esse script? Resumindo/substituindo 
comandos?
Prá deixar ele mais funcional e eficaz?
Até mesmo para aprendizado da gente.

Grato desde já.

Diramos



reply via email to

[Prev in Thread] Current Thread [Next in Thread]