The UNIX and Linux Forums  

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
Parse XML uma lista de tarefas para criar cada arquivo task.xml MissI Programação Shell Script e 3 11-11-2008 02:20
comentar e Descomente a única tarefa de múltiplas funções madhusmita Programação Shell Script e 9 06-18-2008 10:42
Operadores aritméticos filda UNIX para Dummies Perguntas & Respostas 0 06-13-2008 01:55
Posso usar o wc-l com expressão aritmética? lalelle Programação Shell Script e 3 08-11-2007 07:44
aritmética em ksh amon Programação Shell Script e 12 02-05-2007 02:43

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 02-11-2009
Marcelino marcelino is offline
Usuário
  
 

Join Date: Feb 2009
Posts: 4
sed ou awk para a tarefa aritmética

Tenho arquivo com este tipo de formato

01.02.09 08:30
bob
jill
marca

01.04.09 07:00
bob
jill
marca
Tom

Eu quero contar os nomes após a data / ime linha (01.02.09 08:30) e adicionar esse número após o momento como este

01.02.09 08:30 3
01.04.09 07:00 4

Não me importo com os nomes após a contagem, assim posso deixá-los ou tiras a sair com sed se simplifica o processo. Eu também poderia redirecionar a saída de data / hora e contar para a segunda arquivo se torna mais simples. A única coisa que eu realmente preciso é a data / hora e número na mesma linha.

Qual é a melhor ferramenta para conseguir isto e alguém pode fornecer um exemplo?
  #2 (permalink)  
Old 02-11-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2005
Localização: Boston, MA
Mensagens: 5.131

Código:
nawk 'BEGIN {RS=FS=""} {print $1, NF-1}' myFile

  #3 (permalink)  
Old 02-11-2009
Marcelino marcelino is offline
Usuário
  
 

Join Date: Feb 2009
Posts: 4
Quase isso

Nice ...

Eu tive de adicionar o espaço para "" e altere a NF-1 NF-2 para obter contagem rigorosa de todas as linhas exceto a última ea primeira entrada. NF-1 dá a saída correta para a última linha contam apenas. Tenho 9.000 linhas para eu ter a última e primeira questão errada não é significativo.

O próximo problema é que a produção só tem o tempo na linha como esta:

10:00 4
11:00 6

Preciso da data de saída. Atualmente olhando através da nawk manual para descobrir como combinar a hora ea data em produção. Qualquer rápido sugestões? BTW, executando nawk 1.3.3 do Ubuntu 8/10
  #4 (permalink)  
Old 02-11-2009
summer_cherry summer_cherry is offline Forum Advisor  
Usuário
  
 

Join Date: Jun 2007
Localização: Beijing China
Mensagens: 1.092
entrada:

Código:
01.02.09 08:30
bob
jill
mark 

01.04.09 07:00
bob 
jill 
mark
tom

01.02.09 09:30
bob
jill
mark 
hj
gh
fm

01.04.09 10:00
bob 
jill 
mark
tom
aaa
bbb
ccc

Saída:

Código:
01.02.09 08:30 3
01.04.09 07:00 4
01.02.09 09:30 6
01.04.09 10:00 7

código:

Código:
#!/usr/bin/perl
$/="\n\n";
open FH,"<a.txt";
while(<FH>){
	my @temp=split("\n",$_);
	print $temp[0]," ",$#temp,"\n";
}


Código:
awk '/[0-9]*\.[0-9]*\.[0-9]* [0-9][0-9]:[0-9][0-9]/{
	a=$0
	next
}
/^ *$/{
	print a" "n
	n=0
	next
}
{
 n++
}
' a.txt


Última edição por summer_cherry; em 02/11/2009 11:54..
  #5 (permalink)  
Old 02-12-2009
Marcelino marcelino is offline
Usuário
  
 

Join Date: Feb 2009
Posts: 4
summer_cherry e awk perl script funcionou perfeitamente, como é ... Eu só preciso entender como você fez isso ... obrigado ...
  #6 (permalink)  
Old 02-12-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2005
Localização: Boston, MA
Mensagens: 5.131
Citação:
Originally Posted by Marcelino View Post
Nice ...

Eu tive de adicionar o espaço para "" e altere a NF-1 NF-2 para obter contagem rigorosa de todas as linhas exceto a última ea primeira entrada. NF-1 dá a saída correta para a última linha contam apenas. Tenho 9.000 linhas para eu ter a última e primeira questão errada não é significativo.

O próximo problema é que a produção só tem o tempo na linha como esta:

10:00 4
11:00 6

Preciso da data de saída. Atualmente olhando através da nawk manual para descobrir como combinar a hora ea data em produção. Qualquer rápido sugestões? BTW, executando nawk 1.3.3 do Ubuntu 8/10
Hmmm .. muito estranho ...
mar.txt:

Código:
01.02.09 08:30
bob
jill
mark

01.04.09 07:00
bob
jill
mark
tom

nawk 'BEGIN (RS \u003d FS \u003d "") (print $ 1, NF-1)' mar.txt

Saída:

Código:
01.02.09 08:30 3
01.04.09 07:00 4

Parece-me multa. Publique o seu arquivo de entrada (ou uma parte dele), utilizando mB Código tags.
  #7 (permalink)  
Old 02-12-2009
Marcelino marcelino is offline
Usuário
  
 

Join Date: Feb 2009
Posts: 4
resposta

Usando os mesmos dados que você tinha exemplo, eu tenho o seguinte:

nawk 'BEGIN (RS \u003d FS \u003d "") (print $ 1, NF-1)' data.txt
0 27
0 31

Adicionando espaço em ""

$ Nawk 'BEGIN (RS \u003d FS \u003d "") (print $ 1, NF-1)' data.txt
01.02.09 0
08:30 4
07:00 4

Alterando a NF-2

$ Nawk 'BEGIN (RS \u003d FS \u003d "") (print $ 1, NF-2)' data.txt
01.02.09 -1
08:30 3
07:00 3
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 12:04.


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