![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| Figur ut komplekse sortere | w020637 | Shell programmering og Skripting | 7 | 02-05-2009 03:13 |
| sortere dataene i forskjellige kolonner | mogabr | Shell programmering og Skripting | 15 | 08-04-2008 06:07 |
| Administrer Complex XML Data i Oracle XML DB 11g | iBot | Oracle Oppdateringer (RSS) | 0 | 04-06-2008 05:10 |
| Script for å sortere data | wizardy_maximus | Shell programmering og Skripting | 1 | 11-21-2007 04:30 |
| sortere data | bjorb | Shell programmering og Skripting | 11 | 09-15-2005 05:22 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Sorter komplekse data
Hei,
Kan noen her hjelpe sortering følgende data i numerisk rekkefølge? Inngang: FIRST abc (3) def (13) fgh (1) ijk (6) abc (2) SECOND dfe (10) ABC (4) hij (19) TLM (1) hij (1) hub (10) abc (1) fôres (3) ANDRE hij (10) Mok (4) bub (19) hij (1) abc (2) ABC (15) abc (1) hij (3) OUTPUT: FIRST def (13) ijk (6) abc (3) abc (2) fgh (1) SECOND hij (19) dfe (10) hub (10) ABC (4) fôres (3) abc (1) hij (1) TLM (1) ANDRE bub (19) abc (15) hij (10) Mok (4) hij (3) abc (2) abc (1) hij (1) Takk på forhånd for hjelpen! |
|
||||
|
At produksjon er vanskelig, siden det ser ut til å være sortering i to forskjellige retninger, alfabetisk men reverskonstruert tallmessig ... CommandLine sortere kan ikke gjøre som du vil skrive din egen shell-basert sortering rutiner. Er form av utdataene virkelig at strenge? Hva er data?
|
|
||||
|
Her er noen som kunne trolig bli mer effektiv, men tror jeg gjør hva du vil:
Code:
#!/bin/sh
while read TITLE LINE
do
ARR=( $LINE )
for ((N=0; N<${#ARR}; N++))
do
if [[ -z "${ARR[$N]}" ]]
then
break
fi
OLDIFS="${IFS}"
IFS="()"
VAL=( ${ARR[$N]} )
printf "%s %s\n" ${VAL[1]} ${VAL[0]}
IFS="${OLDIFS}"
done | sort -rn | (
echo -n $TITLE
while read I STR
do
echo -n " ${STR}(${I})"
done
echo )
done
exit 0
Code:
$ echo "FIRST abc(3) def(13) fgh(1) ijk(6) abc(2) SECOND dfe(10) abc(4) hij(19) tlm(1) hij(1) hub(10) abc(1) fed(3) OTHERS hij(10) mok(4) bub(19) hij(1) abc(2) abc(15) abc(1) hij(3)" | ./sorter.sh FIRST def(13) ijk(6) abc(3) abc(2) fgh(1) SECOND hij(19) hub(10) dfe(10) abc(4) tlm(1) hij(1) abc(1) OTHERS bub(19) abc(15) hij(10) mok(4) abc(2) hij(1) abc(1) $ |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|