The UNIX and Linux Forums  

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
rapido sed questione VBM Shell scripting e di programmazione 2 11-09-2006 10:44 PM
Ok rapido questione Corrail Shell scripting e di programmazione 1 11-11-2005 01:49 PM
Quick perl questione jason_v Shell scripting e di programmazione 7 11-26-2003 04:31 AM
Domanda veloce catbad UNIX for Dummies Domande & Risposte 7 03-25-2003 07:01 PM
Domanda veloce Tracy Hunt UNIX for Dummies Domande & Risposte 3 02-20-2001 04:20 PM

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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 10-09-2008
zx1106 zx1106 is offline
Utente Registrato
  
 

Iscriviti Data: marzo 2008
Posizione: Stati Uniti
Interventi: 21
[B] Perl questione sorta veloce [/ B]

Ho fatto un resoconto di Google su questo, ma non riuscì a trovare la risposta che voglio.

Dico, vi è un array come questo:
@ A \u003d qw (CD1 A1 EF A2 hij a12 b2 b4 B22);

Voglio ordinare l'array nel primo ordine:
@ ordinati \u003d qw (A1 A12 A2 B2 B22 B4 cd1 hij ef);

E secondo ordine:
@ ordinati \u003d qw (A1 A2 A12 B2 B4 B22 cd1 hij ef);

C'è un modo per fare questo in Perl senza utilizzare i moduli?

Thanks a lot!

Last edited by zx1106; 10-09-2008 at 01:44 PM..
  #2 (permalink)  
Old 10-09-2008
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Iscriviti Data: febbraio 2004
Ubicazione: MN
Messaggi: 5.805
Non si considera la funzione sort di un modulo?

Codice:
@sorted=sort(@A);

  #3 (permalink)  
Old 10-09-2008
zx1106 zx1106 is offline
Utente Registrato
  
 

Iscriviti Data: marzo 2008
Posizione: Stati Uniti
Interventi: 21
Grazie! Si lavora per il primo ordine.
  #4 (permalink)  
Old 10-09-2008
zx1106 zx1106 is offline
Utente Registrato
  
 

Iscriviti Data: marzo 2008
Posizione: Stati Uniti
Interventi: 21
Che dire del secondo ordine:
qw (A1 A2 A12 B2 B4 B22 cd1 hij ef);
Grazie!
  #5 (permalink)  
Old 10-09-2008
cbkihong cbkihong is offline Forum Advisor  
Advisor
  
 

Join Date: Sep 2002
Posizione: Hong Kong, Cina
Interventi: 1.624
Sì, è possibile ordinare con una regola personalizzata. Ma qual è esattamente la norma per l'ordinamento? Se non è possibile elaborare una specifica formale del genere, nessuno sarà in grado di farlo "correttamente".

Il seguente dà lo stesso ordine, come lei ha detto, ma non vi è alcuna garanzia che si sta per dare il "giusto" ordinamento (come ci si potrebbe aspettare) per i valori di input:


Codice:
use Data::Dumper;

@A = qw(cd1 a1 ef a2 hij a12 b2 b4 b22);
print Dumper([sort {
	my ($_a, $_b);
	for ([$a, \$_a], [$b, \$_b]) {
		$_->[0] =~ /^(.+?)(\d*)$/;
		${$_->[1]} = [$1, $2];
	}
	($$_a[0] cmp $$_b[0]) || ($$_a[1] <=> $$_b[1]);
} @A]);

  #6 (permalink)  
Old 10-10-2008
KevinADC KevinADC is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: gennaio 2008
Messaggi: 731
Secondo ordine che sembra essere una sorta prima alpha poi cifre:


Codice:
my @A = qw(cd1 a1 ef a2 hij a12 b2 b4 b22);

my @sorted = map{$_->[2]}
          sort{$a->[0] cmp $b->[0] || $a->[1] <=> $b->[1]}
          map{/([a-z]*)(\d*)/;[$1,$2,$_]} @A;

print "$_\n" for @sorted;

Google "Schwartzian Transform", se interessati alla tecnica di cache chiave di ordinamento.
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 11:19 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0