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
ordenar certas soco? não todo o arquivo? nabmufti Programação Shell Script e 6 02-14-2008 10:54
adicionar colunas a partir do arquivo para outro e classificar kamel.seg Programação Shell Script e 12 12-12-2007 02:39
Como classificar um arquivo de determinada situação? vishalpatel03 Programação Shell Script e 4 11-26-2007 10:53
Classificar e comparar arquivo sabercats Programação Shell Script e 3 03-27-2006 03:05
como uma espécie de arquivo tao UNIX para Dummies Perguntas & Respostas 2 03-24-2002 11:34

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-09-2008
Mozart mozart is offline
Usuário
  
 

Join Date: Feb 2008
Posts: 1
ordenar csv

oi pessoal.
Estou de novo a shell scripts. Fui praticante e codificação
em um arquivo CSV (valores separados por vírgulas) é possível classificar um determinado bloco?

aquilo que devo fazer se deseja ordenar esses contatos pelos seus aniversários na ordem ascendente (janeiro a dezembro)? E eu quero apenas para exibir seu nome e aniversário?

Aqui está o arquivo

Sharapova, Maria ,19-abr-1987, Brandenton Flórida, E.U.A., admin@mariasharapova.com, +1 (954) 3387488
Bryant, Kobe ,23-ago-1978, LA Califórnia, E.U.A., kobe@lakers.comk +1 (310) 87890
Spielberg, Steven ,18-dez-1946, LACalifornia, E.U.A., steven@dreamworks.com, +1 (389) 89098
Harnois, Elisabeth ,26-mai-1979, Detroit Michigan, E.U.A., liz@1treehill.net, +1 (313) 74564536
Ryan, Michelle ,22-abr-1984, Enfield London, Reino Unido, mryan@nbc.com, +44 (207) 2988410
Belle, Camilla ,2-out-19886, Miami Florida, E.U.A., cam_65@hollywood.org, +1 (954) 3790491
Gellar, Sarah Michelle ,14-abr-1977, LA Califórnia, E.U.A., smg@buffy.com, +1 (213) 3398848m
Underwood, Carrie ,10-mar-1983, Checotah Oklahoma, E.U.A., carrieunderwood@rca.com, +1 (918) 655423

muito obrigado!
  #2 (permalink)  
Old 02-09-2008
KevinADC KevinADC is offline Forum Advisor  
Usuário
  
 

Join Date: Jan 2008
Lugares: 731
É perl aceitável?
  #3 (permalink)  
Old 02-09-2008
KevinADC KevinADC is offline Forum Advisor  
Usuário
  
 

Join Date: Jan 2008
Lugares: 731
Bem, espero que eu fiz isto por mais do que a minha própria diversão:

Código:
#!/usr/bin/perl
use warnings;
use strict;
my @months_numeric = qw(01 02 03 04 05 06 07 08 09 10 11 12);
my @months_alphas  = qw(jan feb mar apr may jun jul aug sep oct nov dec);
my %months;
@months{@months_alphas} = @months_numeric;
open (my $in , '<', 'path/to/celebs.csv') or die "$!";
my @sorted = map {$_->[0]}
             sort{$a->[1] cmp $b->[1]}
             map {chomp;
                  my $bd = (split(","))[2];
                  my ($d,$m,$y) = split("-",$bd);
                  $d = $d<10 ? "0$d" : $d;
                  [$_,"$y$months{$m}$d"]} <$in>;
close $in;
print "$_\n" for @sorted;
Assume todos os meses são representados por três caracteres e todos estão sempre minúscula letras.
  #4 (permalink)  
Old 02-10-2008
drl's Avatar
DRL drl is online now Forum Advisor  
Usuário
  
 

Join Date: Apr 2007
Localização: Saint Paul, MN E.U.A. / BSD, CentOS, Debian, Mac OS X, Solaris
Lugares: 709
Oi, Mozart.

Bem-vindo ao fórum. No futuro, por favor surround dados com o código tags para que possamos lê-los facilmente, e fazer o mesmo para scripts.

Acrescentei umas linhas extra para exercer a ordenação de campos. Este script utiliza comandos frequentemente encontrado em * nix. O padrão tipo tem uma opção para o chamado meses:
Código:
#!/usr/bin/env sh

# @(#) s1       Demonstrate sorting fields by transforming.

#  ____
# /
# |   Infrastructure BEGIN

echo
set -o nounset

debug=":"
debug="echo"

## The shebang using "env" line is designed for portability. For
#  higher security, use:
#
#  #!/bin/sh -

## Use local command version for the commands in this demonstration.

set +o nounset
echo "(Versions displayed with local utility \"version\")"
version >/dev/null 2>&1 && version =o $(_eat $0 $1) tr cut sort
set -o nounset

echo

FILE=${1-data1}
echo " Input file $FILE:"
cat $FILE

# |   Infrastructure END
# \
#  ---

echo
echo " Results from processing:"
tr ' ' '_' <$FILE |
tr ',-' ' ' |
cut -d" " -f1-5 |
sort --key=5,5 --key=4M,4 --key=3,3

exit 0
Produção:
Código:
% ./s1 data2

(Versions displayed with local utility "version")
Linux 2.6.11-x1
GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
tr (coreutils) 5.2.1
cut (coreutils) 5.2.1
sort (coreutils) 5.2.1

 Input file data2:
Bryant,Kobe4,23-sep-1979,L.A. California,USA,kobe@lakers.comk+1(310)87890
Sharapova,Maria,19-apr-1987,Brandenton FLorida,USA,admin@mariasharapova.com,+1(954)3387488
Bryant,Kobe1,23-aug-1978,L.A. California,USA,kobe@lakers.comk+1(310)87890
Spielberg,Steven,18-dec-1946,L.A.California,USA,steven@dreamworks.com,+1(389)89098
Harnois,Elisabeth,26-may-1979,Detroit Michigan,USA,liz@1treehill.net,+1(313)74564536
Ryan,Michelle,22-apr-1984,Enfield London,UK,mryan@nbc.com,+44(207)2988410
Belle,Camilla,2-oct-19886,Miami Florida,USA,cam_65@hollywood.org, +1(954)3790491
Gellar,Sarah Michelle,14-apr-1977,L.A. California,USA,smg@buffy.com,+1(213)3398848m
Underwood,Carrie,10-mar-1983,Checotah Oklahoma,USA,carrieunderwood@rca.com,+1(918)655423
Bryant,Kobe3,23-sep-1978,L.A. California,USA,kobe@lakers.comk+1(310)87890
Bryant,Kobe2,24-aug-1978,L.A. California,USA,kobe@lakers.comk+1(310)87890

 Results from processing:
Spielberg Steven 18 dec 1946
Gellar Sarah_Michelle 14 apr 1977
Bryant Kobe1 23 aug 1978
Bryant Kobe2 24 aug 1978
Bryant Kobe3 23 sep 1978
Harnois Elisabeth 26 may 1979
Bryant Kobe4 23 sep 1979
Underwood Carrie 10 mar 1983
Ryan Michelle 22 apr 1984
Sharapova Maria 19 apr 1987
Belle Camilla 2 oct 19886
Gosto da sua música, eu espero que você gosta meu opus s1 . Ver páginas man para os detalhes ... cheers, DRL
  #5 (permalink)  
Old 02-10-2008
sitney sitney is offline
Usuário
  
 

Join Date: Feb 2008
Lugares: 20
Citação:
aquilo que devo fazer se deseja ordenar esses contatos pelos seus aniversários na ordem ascendente (janeiro a dezembro)? E eu quero apenas para exibir seu nome e aniversário?
Suas exigências não especificar se você deseja ordenar pelo primeiro ano, mas só por mês. Portanto, esta um revestimento deve satisfazer essa exigência:

Código:
sort -t"," -k 3 -t"-" -k 2 -M birthdays.txt |awk -F"," '{print $1, $2, $3}'
  #6 (permalink)  
Old 02-10-2008
alamitab alamitab is offline
Usuário
  
 

Join Date: Jan 2007
Lugares: 25
Classificar por mês

cat arquivo | awk-F "," '(print $ 1, $ 2, $ 3)' | sort-M-T "-"-k 2
Closed Thread

Marcadores

Tags
linux, linux comandos

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 08:24.


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