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
sorta alcuni Patten? non l'intero file? nabmufti Shell scripting e di programmazione 6 02-14-2008 10:54 AM
le colonne da aggiungere file ad un altro tipo e kamel.seg Shell scripting e di programmazione 12 12-12-2007 02:39 PM
Come un file Ordina per data situazione? vishalpatel03 Shell scripting e di programmazione 4 11-26-2007 10:53 AM
Classificare e confrontare file sabercats Shell scripting e di programmazione 3 03-27-2006 04:05 PM
come ordinare un file tao UNIX for Dummies Domande & Risposte 2 03-24-2002 11:34 AM

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 02-09-2008
mozart mozart is offline
Utente Registrato
  
 

Iscriviti Data: febbraio 2008
Interventi: 1
tipo csv

Ciao ragazzi.
Sono nuovo di shell scripting. Sono stato e la pratica di codifica
in un formato CSV (valori separati da virgole) di file è possibile ordinare uno specifico blocco?

Cosa devo fare se voglio ordinare questi contatti con la loro compleanni in ordine crescente (Gen. a Dic.)? E voglio solo per mostrare il loro nome e data di nascita?

Ecco il file

Sharapova, Maria ,19-apr-1987, Brandenton Florida, Stati Uniti d'America, admin@mariasharapova.com, +1 (954) 3387488
Bryant, Kobe ,23-ago-1978, La California, Stati Uniti d'America, kobe@lakers.comk +1 (310) 87890
Spielberg, Steven ,18-dic-1946, LACalifornia, Stati Uniti d'America, steven@dreamworks.com, +1 (389) 89098
Harnois, Elisabeth ,26-mag-1979, Detroit, Michigan, Stati Uniti d'America, liz@1treehill.net, +1 (313) 74564536
Ryan Michelle ,22-apr-1984, Enfield Londra, Regno Unito, mryan@nbc.com, +44 (207) 2988410
Belle, Camilla ,2-ott-19886, Miami Florida, Stati Uniti d'America, cam_65@hollywood.org, +1 (954) 3790491
Gellar, Sarah Michelle ,14-apr-1977, La California, Stati Uniti d'America, smg@buffy.com, +1 (213) 3398848m
Underwood, Carrie ,10-mar-1983, Checotah Oklahoma, Stati Uniti d'America, carrieunderwood@rca.com, +1 (918) 655423

molte grazie!
  #2 (permalink)  
Old 02-09-2008
KevinADC KevinADC is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: gennaio 2008
Messaggi: 731
È perl accettabile?
  #3 (permalink)  
Old 02-09-2008
KevinADC KevinADC is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: gennaio 2008
Messaggi: 731
Beh, magari ho fatto per più di mio divertimento:


Codice:
#!/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 tutti i mesi sono rappresentati da tre caratteri, e sono sempre tutte le lettere minuscole.
  #4 (permalink)  
Old 02-10-2008
drl's Avatar
DRL drl is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: aprile 2007
Località: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Interventi: 717
Ciao, Mozart.

Benvenuto al forum. In futuro si prega circondano i dati con il codice tag in modo che si può leggere facilmente, e fare la stessa cosa per gli script.

Ho aggiunto qualche linee di esercitare l'ordinamento dei campi. Questo script utilizza comandi spesso trovato su * nix. Lo standard sorta ha una opzione per nome mese:

Codice:
#!/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

Produzione:

Codice:
% ./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

Mi piace la tua musica, spero che ti piace il mio opus s1 . Vedere le pagine man per i dettagli ... cheers, DRL
  #5 (permalink)  
Old 02-10-2008
sitney sitney is offline
Utente Registrato
  
 

Iscriviti Data: febbraio 2008
Interventi: 24
Citazione:
Cosa devo fare se voglio ordinare questi contatti con la loro compleanni in ordine crescente (Gen. a Dic.)? E voglio solo per mostrare il loro nome e data di nascita?
Le vostre esigenze non specificare se si desidera ordinare da anni prima, ma solo per mese. Quindi questa linea dovrebbe soddisfare tale requisito:


Codice:
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
Utente Registrato
  
 

Iscriviti Data: gennaio 2007
Interventi: 25
Ordina per mese

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

Segnalibri

Tag
linux, linux comandi

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:36 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