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
Adicionando uma coluna para um texto baseado no nome do arquivo rlapate Programação Shell Script e 12 05-23-2009 09:22
Filtragem de registros de um arquivo baseado em um valor de uma coluna risk_sly UNIX para Dummies Perguntas & Respostas 4 09-24-2008 02:22
triagem arquivo baseado em duas ou mais colunas labrazil Programação Shell Script e 2 09-16-2008 11:19
Obter uma linha de arquivo com base em um valor na coluna específica efernandes UNIX para Dummies Perguntas & Respostas 1 01-27-2007 11:04
Classificando um arquivo plano baseado em múltiplas colunas (usando caracteres posição) cucubird Programação Shell Script e 8 07-25-2006 12:47

Reply
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 07-03-2009
tententen tententen is offline
Usuário
  
 

Join Data: dezembro 2008
Lugares: 17
csv triagem com base em coluna selecionada

Oi tudo,

na minha csv vai ter este aspecto, e é claro que pode ter mais colunas

E.U. ao Reino Unido; abc-HQ-JCL; multimédia
Reino Unido para NC; def-ny-jkl; padrão
DE ao DM; abc-ab-KLM; crítica
FD para YM; la-ano-tym; padrão
ORQUÊ de MC; la-ano-ytm; multimédia
GT para KJ; def-ny-JRT; crítica

Gostaria de lhes grupo baseado na 3 ª coluna e, em seguida, ordená-los com base em 2 ª coluna, pelo que vai ter este aspecto

DE ao DM; abc-ab-KLM; crítica
GT para KJ; def-ny-JRT; crítica
E.U. ao Reino Unido; abc-HQ-JCL; multimédia
ORQUÊ de MC; la-ano-ytm; multimédia
Reino Unido para NC; def-ny-jkl; padrão
FD para YM; la-ano-tym; padrão

também seria bom que de alguma maneira eu possa ter este aspecto para que ele vai olhar mais apresentável: P,

CRÍTICAS
DE ao DM; abc-ab-KLM; crítica
GT para KJ; def-ny-JRT; crítica

Multimídia
E.U. ao Reino Unido; abc-HQ-JCL; multimédia
ORQUÊ de MC; la-ano-ytm; multimédia

Norma
Reino Unido para NC; def-ny-jkl; padrão
FD para YM; la-ano-tym; padrão
  #2 (permalink)  
Old 07-03-2009
vidyadhar85's Avatar
vidyadhar85 vidyadhar85 is offline Forum Staff  
Moderador (o tutor)
  
 

Join Date: Jun 2008
Localização: ÍNDIA
Posts: 1.390
hmmm utilização tipo comando
Código:
sort -t";" -k3 -k2 filename
e para segunda req usar awk ..
Código:
sort -t";" -k3 -k2 filename|awk -F\; '{A[$3]=A[$3]"\n"$0}END{for (i in A){print toupper(i)A[i]}}'
  #3 (permalink)  
Old 07-04-2009
kshji's Avatar
kshji kshji is offline
Usuário
  
 

Join Date: Jun 2009
Localização: Finlândia
Lugares: 236
Usando o awk regra idéia.
Código:
ff=file.txt

sort -t";" -k3 -k2 $ff | \
   awk -F";" -v keyfld=3 '
      # - next key value
      $keyfld != prevkey { 
                print toupper($keyfld) 
                }
      # - every line
                { 
                print $0
                prevkey=$keyfld
                }
   '
Ou usando ksh
Código:
prevkey=""
oifs="$IFS"
typeset -u key
sort -t";" -k3 -k2 $ff | while read line
do
        IFS=";"
        set -A flds -- $line    # to array, 1st index 0 
        IFS="$oifs"
        key=${flds[2]}
        [ "$prevkey" != "$key" ] && print "$key"
        print "$line"
        prevkey=$key
done
  #4 (permalink)  
Old 07-04-2009
scottn scottn is online now Forum Advisor  
Membro VIP
  
 

Join Date: Jun 2009
Localização: Zürich, CH
Mensagens: 1.053
Como você disse

Citação:
... ele pode ter mais colunas
Uma ligeira modificação no código do vidyadhar85
Código:
sort -t";" -k3 -k2 filename|awk -F\; '{A[$NF]=A[$NF]"\n"$0}END{for (i in A) {print toupper(i)A[i]}}'
  #5 (permalink)  
Old 07-05-2009
summer_cherry summer_cherry is offline Forum Advisor  
Usuário
  
 

Join Date: Jun 2007
Localização: Beijing China
Mensagens: 1.086
how about abaixo perl:

Código:
my @arr=<DATA>;
print map {$_->[0]}
      sort {$a->[1]->[2] cmp $b->[1]->[2] or $a->[1]->[1] cmp $b->[1]->[1]}
      map {my @tmp=split(";",$_);[$_,\@tmp]}
      @arr;
__DATA__
US to UK;abc-hq-jcl;multimedia
UK to CN;def-ny-jkl;standard
DE to DM;abc-ab-klm;critical
FD to YM;la-yr-tym;standard
HY to MC;la-yr-ytm;multimedia
GT to KJ;def-ny-jrt;critical
Reply

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 09:41.


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