The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Apagar linhas acima de uma determinada linha eltinator Programação Shell Script e 3 10-11-2007 02:29
Movendo linhas dentro de um arquivo txt innocentspirit Programação Shell Script e 5 09-28-2007 12:04
apagar linhas usando awk-melhor forma? satnamx Programação Shell Script e 3 08-29-2007 07:24
Passando próximos 2 linhas de conteúdo para linhas anteriores Amruta Pitkar Programação Shell Script e 8 04-26-2007 06:09
suprimir linhas ajnabi Programação Shell Script e 8 05-02-2003 11:50

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 11-22-2007
sabyasm sabyasm is offline
Usuário
  
 

Join Date: Sep 2005
Lugares: 27
Post suprimindo nomeadamente linhas e uma linha que se deslocam até usando perl / sed

Oi,

Eu preciso converter um arquivo no seguinte formato: (note que os números de linha estão previstas fácil olhar)

Arquivo original:

N º 1 2007-10-2482.90 comércio 0 0,00 100.000,00
2 100000,00
3 0,00
4 HOLD
5 2007-10-2589.75 Comprada 1114 1114 100.000,00 0,00
6 100000,00
7 -0,00
8 FORTE COMPRAR
N º 9 2007-10-2692.35 comerciais 1114 102.896,94 0,00
10 102896,94
11 2,90
12 FORTE COMPRAR
13 2007-10-2991.20 n º 1114 comércio 101.615,60 0,00
14 101615,60
15 1,62
16 FORTE COMPRAR
17 2007-10-3090.05 n º 1114 comércio 100.334,26 0,00
18 100334,26
19 0,33
20 FORTE COMPRAR
N º 21 2007-10-3188.45 comerciais 1114 98.551,53 0,00
22 98551,53
23 -1,45
24 FORTE COMPRAR
25 2007-11-0183.70 Vendido 1114 0 0,00 93259,05
26 93259,05
27 -6,74
28 FORTE VENDER

Modifiled arquivo:

N º 1 2007-10-2482.90 comércio 0 0,00 100.000,00 HOLD
2 2007-10-2589.75 Comprada 1114 1114 100.000,00 0,00 FORTE COMPRAR
N º 3 2007-10-2692.35 comércio FORTE 1114 102.896,94 0,00 COMPRAR
N º 4 2007-10-2991.20 comércio FORTE 1114 101.615,60 0,00 COMPRAR
5 2007-10-3090.05 n. comércio FORTE 1114 100.334,26 0,00 COMPRAR
6 2007-10-3188.45 n. comércio FORTE 1114 98.551,53 0,00 COMPRAR
7 2007-11-0183.70 Vendido 1114 0 0,00 93.259,05 FORTE VENDER


Isto é, a cada 4 linhas do arquivo de entrada precisa ser convertida em uma única linha - após a exclusão de 2 ª e 3 ª linha.

A perl script para fazer isso seria ótimo. (sed também cumprir o meu objectivo, mas perl forma será muito apreciada).

Aguardando a vossa ajuda!
  #2 (permalink)  
Old 11-22-2007
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Join Date: Mar 2005
Localização: nó folha na árvore B +
Mensagens: 2.952
Código:
awk '{ printf "%s", $0; getline;  getline; getline var; printf " %s\n", var }' filename
  #3 (permalink)  
Old 11-22-2007
sabyasm sabyasm is offline
Usuário
  
 

Join Date: Sep 2005
Lugares: 27
ótimo! trabalhadas - basta pensar se isto pode ser em donw perl ...
  #4 (permalink)  
Old 11-22-2007
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Join Date: Mar 2005
Localização: nó folha na árvore B +
Mensagens: 2.952
Citação:
Originally Posted by sabyasm View Post
ótimo! trabalhadas - basta pensar se isto pode ser em donw perl ...
sim ele pode ser feito!

Código:
#! /opt/third-party/bin/perl

my $skip = 2;

open(FILE, "<", "a2");

while(<FILE>) {
  chomp;
  if ( $skip < -1 ) {
    $skip = 1;
    print $_;
    next;
  }
  print $_ if( $skip == 2 );
  print "$_\n" if( $skip == -1 );
  $skip--;
}

close(FILE);
  #5 (permalink)  
Old 11-22-2007
summer_cherry summer_cherry is online now Forum Advisor  
Usuário
  
 

Join Date: Jun 2007
Localização: Beijing China
Mensagens: 1.084
awk

oi,

Este deve ser um ok.

código:

Código:
awk '{
if (NR%4==1)
	str=$0
if (NR%4==0)
	print NR/4" "str" "$0
}' file
  #6 (permalink)  
Old 12-12-2007
btech_raju
Convidado
  
 

Posts: n / a
Bits: 0 [Bancária]
colar - - - - <x
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 10:07.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0