Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
A Las Vegas AMD ha svelato i dettagli architetturali delle CPU EPYC di sesta generazione, note con il nome in codice Venice. Nuovi core Zen 6 e Zen 6c costruiti a 2 nanometri, fino a 256 core per socket, 16 canali di memoria, interfaccia PCI Express 6.0 e un'intera famiglia di proposte che va da Venice SP7 a Verano. Senza dimenticare la memoria, oggi la voce di costo più pesante in un server: AMD risponde con CXL 3.1 e con la tecnologia software MEXT, che porta la memoria flash dentro la gerarchia della DRAM.
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max mette un pannello IPS da 13 pollici con risoluzione 2,5K e refresh a 120 Hz davanti a una batteria da 10.100 mAh e a quattro altoparlanti. Il listino parte da 399,90 euro, per un progetto molto chiaro e ambizioso: schermo ampio, buon audio e giornate lontano dalla presa, a un prezzo che non pesa sul portafoglio
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-10-2008, 15:19   #1
power83
Member
 
Iscritto dal: Oct 2004
Messaggi: 81
Shell unix per ordinare file in cartelle

Buongiorno a tutti,
dovrei creare una shell unix che analizza il contenuto di
una cartella e ordina i vari file in sottocartelle.
Ad es nella cartella sono presenti i file a1.txt, a2.txt, b1.txt
il risultato sarebbe avere i file 'a' tutti dentro la sottocartella 'filea'
e i file 'b' tutti dentro la sottocartella 'fileb'.

E' possibile una cosa del genere, se si come?!?

Grazie
power83 è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2008, 16:43   #2
leuzr0x
Member
 
Iscritto dal: Nov 2007
Città: Ginevra
Messaggi: 256
Cosa intendi per creare una shell unix?
Scrivere una shell da 0 che ti permetta di fare cio' che dici tu, o uno script per una shell
gia' esistente (es bash) ?
leuzr0x è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2008, 16:45   #3
power83
Member
 
Iscritto dal: Oct 2004
Messaggi: 81
Quote:
Originariamente inviato da leuzr0x Guarda i messaggi
Cosa intendi per creare una shell unix?
Scrivere una shell da 0 che ti permetta di fare cio' che dici tu, o uno script per una shell
gia' esistente (es bash) ?

Ciao, scriverla da 0!
power83 è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2008, 16:59   #4
dawid999
Senior Member
 
L'Avatar di dawid999
 
Iscritto dal: Nov 2006
Messaggi: 557
Quote:
Originariamente inviato da power83 Guarda i messaggi
Ciao, scriverla da 0!
script di shell
dawid999 è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2008, 17:10   #5
power83
Member
 
Iscritto dal: Oct 2004
Messaggi: 81
Quote:
Originariamente inviato da dawid999 Guarda i messaggi
script di shell
Sfortunatamente le mie conoscenze di unix sono pochine...potresti spiegarmi cosa intendi?!?

Grazie
power83 è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2008, 17:57   #6
megamitch
Senior Member
 
L'Avatar di megamitch
 
Iscritto dal: May 2004
Messaggi: 13707
Ciao,
quello che ti serve è uno "script" (o un programma se preferisci) che esegua le operazioni che ti servono.

La "shell" è l'ambiente dentro il quale il programma (o script) viene eseguito.

Ciao
M.

PS: per i puristi, non vogliatemene se ho usato un linguaggio "scorretto"...
__________________
"Qualunque cosa abbia il potere di farti ridere ancora trent'anni più tardi non è uno spreco di tempo. Credo che le cose di quella categoria si avvicinino molto all'immortalità"
megamitch è online   Rispondi citando il messaggio o parte di esso
Old 27-10-2008, 19:07   #7
leuzr0x
Member
 
Iscritto dal: Nov 2007
Città: Ginevra
Messaggi: 256
Quote:
Originariamente inviato da dawid999 Guarda i messaggi
script di shell
Si credo anch'io
Ma magari parlava di un progetto universitario o chissa' cosa
Facci sapere se ti serve uno script.
leuzr0x è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2008, 20:15   #8
HexDEF6
Senior Member
 
L'Avatar di HexDEF6
 
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
ti posto una cosa che mi e' venuta di getto (non l'ho testato, quindi potrei aver fatto qualche cazzata, ma l'idea di base c'e')...
ma ovviamente ti consiglio di studiarti almeno un pelino di bash (almeno sapere cos'e' una shell e cosa uno script!)

Codice:
#!/bin/bash
for file in $(ls *.txt)
do
        directory=file$(echo $file | cut -c 1)
        mkdir -p $(pwd)/$directory
        mv $file $directory/
done
a dire la verita' adesso che ci ho pensato 10 secondi in piu' mi e' venuto in mente un metodo decisamente piu' veloce (se ci sono tanti file)...
ma adesso vado ad allenamento... magari posto piu' tardi!

ok avevo 5 minuti

Codice:
#!/bin/bash
for letter in $(ls *.txt | cut -c 1 | uniq)
do
	mkdir -p ./file$letter
	mv $letter*.txt ./file$letter
done
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++.
HOWTO: SSH Firewall e DMZ
ɐɹdosoʇʇos oʇuǝs ıɯ

Ultima modifica di HexDEF6 : 27-10-2008 alle 20:26.
HexDEF6 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2008, 17:37   #9
power83
Member
 
Iscritto dal: Oct 2004
Messaggi: 81
Quote:
Originariamente inviato da megamitch Guarda i messaggi
Ciao,
quello che ti serve è uno "script" (o un programma se preferisci) che esegua le operazioni che ti servono.

La "shell" è l'ambiente dentro il quale il programma (o script) viene eseguito.

Ciao
M.

PS: per i puristi, non vogliatemene se ho usato un linguaggio "scorretto"...
Corretto...scusate la terminologia errata!
Ed è appunto un prgetto universitario!
Ci provo subito, grazie mille

Ps.: un ulteriore precisazione i nome dei file è a0001.txt .. a0011.txt e la cartella per uno sarà
cartella1 mentre per l'altro cartella11.

Ultima modifica di power83 : 28-10-2008 alle 17:57.
power83 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2008, 19:12   #10
HexDEF6
Senior Member
 
L'Avatar di HexDEF6
 
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
Quote:
Originariamente inviato da power83 Guarda i messaggi
Corretto...scusate la terminologia errata!
Ed è appunto un prgetto universitario!
Ci provo subito, grazie mille

Ps.: un ulteriore precisazione i nome dei file è a0001.txt .. a0011.txt e la cartella per uno sarà
cartella1 mentre per l'altro cartella11.
beh le basi te le ho fatte vedere... adesso con una buona guida: http://tldp.org/LDP/abs/html/ e un po di buona volonta' vedrai che ce la fai a modificare lo script e a fare quello che ti serve...
ovviamente per suggerimenti e spiegazioni, ti do' una mano volentieri...
magari studia un attimo e poi posta il tuo script (con spiegazione di quello che vuoi fare quasi riga per riga) e noi ti diamo una mano a sistemare!

buon lavoro!
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++.
HOWTO: SSH Firewall e DMZ
ɐɹdosoʇʇos oʇuǝs ıɯ
HexDEF6 è offline   Rispondi citando il messaggio o parte di esso
Old 29-10-2008, 00:29   #11
Mason
Senior Member
 
L'Avatar di Mason
 
Iscritto dal: Nov 2002
Città: Morbegno (SO)
Messaggi: 1410
Quote:
Originariamente inviato da power83 Guarda i messaggi
Corretto...scusate la terminologia errata!
Ed è appunto un prgetto universitario!
Ci provo subito, grazie mille

Ps.: un ulteriore precisazione i nome dei file è a0001.txt .. a0011.txt e la cartella per uno sarà
cartella1 mentre per l'altro cartella11.
Almeno ci hai provato a farlo?

per policy, questi post dovrebbero essere corredati dal codice che uno prova a scrivere.
__________________
e' difficile cio' che non si conosce
Tic Tac
Andrew Morton, 15/02/2008 LKML:"`tmp' is an awful identifier, and renaming it to `temp' hardly improves it."

Ultima modifica di Mason : 29-10-2008 alle 00:37.
Mason è offline   Rispondi citando il messaggio o parte di esso
Old 29-10-2008, 10:37   #12
power83
Member
 
Iscritto dal: Oct 2004
Messaggi: 81
Quote:
Originariamente inviato da Mason Guarda i messaggi
Almeno ci hai provato a farlo?

per policy, questi post dovrebbero essere corredati dal codice che uno prova a scrivere.
Certo che ci ho provato...

Grazie HexDEF6 per il manuale!!

Ora ci picchio un pò la testa!

Graziiiiiiiieeeeee!
power83 è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2008, 09:36   #13
power83
Member
 
Iscritto dal: Oct 2004
Messaggi: 81
Ciao a tutti,
grazie ai vostri consigli e al manuale sono riuscito a fare tutto il progetto
e non solo la piccola parte di cui chiedevo!

Mi sono restati due dubbi:
1) substring: sui vari manuali ho trovato questo codice:
stringZ=abcABC123ABCabc
echo `expr match "$stringZ" 'abc[A−Z]*.2'`
echo `expr "$stringZ" : 'abc[A−Z]*.2'`

Provando ad eseguirlo l'output a video sono giustamente due 8...in quanto la stringa abc o ABC è ripetuta 4 volte.
Ma non ne esiste un substring che faccia una cosa del genedere:
stringZ=abcABC123ABCabc
echo substr($stringZ,6,3)
Il cui output a video sarà in questo caso 123.

2) raplace: in questo caso, sempre sui manuali, ho trovato che il
replace si può fare con le seguenti istruzioni:
stringZ=abcABC123ABCabc
echo ${stringZ/#abc/XYZ}
echo ${stringZ/%abc/XYZ}

In entrambi i casi il risultato è bad substitution.
Quindi come posso sostituire una parte di da una stringa, esempio:
stringZ=abcABC123ABCabc
echo replace($stringZ,abc,'')
Il cui output a video sarà in questo caso ABC123ABC.

Scusate le domande sicuramente banali ma è la prima volta che mi "scontro"
con questo modo di scrivere programmi.

Grazie mille
power83 è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2008, 10:34   #14
HexDEF6
Senior Member
 
L'Avatar di HexDEF6
 
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
Quote:
Originariamente inviato da power83 Guarda i messaggi
Ciao a tutti,
grazie ai vostri consigli e al manuale sono riuscito a fare tutto il progetto
e non solo la piccola parte di cui chiedevo!

Mi sono restati due dubbi:
1) substring: sui vari manuali ho trovato questo codice:
stringZ=abcABC123ABCabc
echo `expr match "$stringZ" 'abc[A−Z]*.2'`
echo `expr "$stringZ" : 'abc[A−Z]*.2'`

Provando ad eseguirlo l'output a video sono giustamente due 8...in quanto la stringa abc o ABC è ripetuta 4 volte.
Ma non ne esiste un substring che faccia una cosa del genedere:
stringZ=abcABC123ABCabc
echo substr($stringZ,6,3)
Il cui output a video sarà in questo caso 123.
se ho capito cosa ti serve, si fa cosi:
echo ${stringZ:6:3}

Quote:
Originariamente inviato da power83 Guarda i messaggi
2) raplace: in questo caso, sempre sui manuali, ho trovato che il
replace si può fare con le seguenti istruzioni:
stringZ=abcABC123ABCabc
echo ${stringZ/#abc/XYZ}
echo ${stringZ/%abc/XYZ}

In entrambi i casi il risultato è bad substitution.
Quindi come posso sostituire una parte di da una stringa, esempio:
stringZ=abcABC123ABCabc
echo replace($stringZ,abc,'')
Il cui output a video sarà in questo caso ABC123ABC.

Scusate le domande sicuramente banali ma è la prima volta che mi "scontro"
con questo modo di scrivere programmi.

Grazie mille
stai usando una bash?
perche' le sostituzioni funzionano proprio cosi!

stringZ=abcABC123ABCabc
echo ${stringZ/#abc/XYZ}
il risultato sara' :
XYZABC123ABCabc
il # davanti indica che fara' la sostituzione solo se abc e' all'inizio della stringa

echo ${stringZ/%abc/XYZ}
il risultato sara':
abcABC123ABCXYZ
il % sta ad indicare che la sostituzione verra' fatta solo se la fine della stringa e' abc

se invece vuoi sostituire tutte le ricorrenze devi fare:
echo ${stringZ//abc/XYZ}
XYZABC123ABCXYZ
o se metti:
echo ${stringZ//abc/}
otterrai:
ABC123ABC

spero di aver chiarito!
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++.
HOWTO: SSH Firewall e DMZ
ɐɹdosoʇʇos oʇuǝs ıɯ
HexDEF6 è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2008, 10:48   #15
power83
Member
 
Iscritto dal: Oct 2004
Messaggi: 81
Ok, tutto chiaro...solo che sia per
echo ${stringZ:6:3} che per
echo ${stringZ//abc/}
il risultato è
${stringZ:6:3}: bad substitution
${stringZ//abc/}: bad substitution

Grazie mille per la spiegazione
power83 è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2008, 10:52   #16
HexDEF6
Senior Member
 
L'Avatar di HexDEF6
 
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
Quote:
Originariamente inviato da power83 Guarda i messaggi
Ok, tutto chiaro...solo che sia per
echo ${stringZ:6:3} che per
echo ${stringZ//abc/}
il risultato è
${stringZ:6:3}: bad substitution
${stringZ//abc/}: bad substitution

Grazie mille per la spiegazione
ma che sistema operativo stai usando?
che shell?
perche' queste funzionano sicuramente sotto bash (le ho provate proprio adesso!)... ma magari sotto qualche altra shell no...

prima di lanciare uno di questi script lancia:
bash

e poi vai con lo script
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++.
HOWTO: SSH Firewall e DMZ
ɐɹdosoʇʇos oʇuǝs ıɯ
HexDEF6 è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2008, 11:02   #17
power83
Member
 
Iscritto dal: Oct 2004
Messaggi: 81
SunOS 5.8
Neanche sotto bash funzionano:

bash-2.03$ prova.sh
file_0001.txt
file_0011.dat
file_0012.dat
/shell/prova.sh[34]: ${stringZ:6:3}: bad substitution
bash-2.03$

Grazie
power83 è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2008, 11:47   #18
HexDEF6
Senior Member
 
L'Avatar di HexDEF6
 
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
Quote:
Originariamente inviato da power83 Guarda i messaggi
SunOS 5.8
Neanche sotto bash funzionano:

bash-2.03$ prova.sh
file_0001.txt
file_0011.dat
file_0012.dat
/shell/prova.sh[34]: ${stringZ:6:3}: bad substitution
bash-2.03$

Grazie
azz, la guida credo si riferisca alla versione 3 di bash...
e infatti nel mio caso:
$ bash --version
GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++.
HOWTO: SSH Firewall e DMZ
ɐɹdosoʇʇos oʇuǝs ıɯ
HexDEF6 è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2008, 12:04   #19
power83
Member
 
Iscritto dal: Oct 2004
Messaggi: 81
Infatti noi abbaimo una misera version 2.03.0(1)-release...

Secondo te ci sono alternative?!?

Grazie
power83 è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2008, 12:22   #20
HexDEF6
Senior Member
 
L'Avatar di HexDEF6
 
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
Quote:
Originariamente inviato da power83 Guarda i messaggi
Infatti noi abbaimo una misera version 2.03.0(1)-release...

Secondo te ci sono alternative?!?

Grazie
beh, puoi usare sed e awk, ma per fare certe cose come modificare una stringa, mi sembrano un pelo esagerati...

vedo se magari trovo la versione dell'advanced bash scripting guide per la bash 2

dovresti trovarti la guida alla versione 2.8
dalla 3 in poi inizia a parlare anche di bash 3
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++.
HOWTO: SSH Firewall e DMZ
ɐɹdosoʇʇos oʇuǝs ıɯ

Ultima modifica di HexDEF6 : 30-10-2008 alle 12:31.
HexDEF6 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria AMD EPYC Venice: dentro Zen 6, i SoC a 256 core ...
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Anthropic: IPO tra 70 e 78 dollari, Goog...
SSHole in OpenSSH è già sfruttata: la CI...
Secure Future Group: il rischio cyber si...
Recensione Anker MagGo Power Bank 2 Pro,...
Salesforce Agentforce Coworker: il colle...
Sirui porta l’autofocus luminoso sotto i...
BluePhishing, il nuovo metodo di attacco...
Elon Musk parla dei propulsori Raptor 4 ...
NVIDIA, la vicenda Jensen Huang finisce ...
Spiare un monitor dal cavo HDMI: un'IA a...
Infomaniak lancia lo storage a oggetti S...
Rocket Factory Augsburg ha posticipato i...
Lightning Tables, Confluent promette olt...
Isar Aerospace potrebbe lanciare nuovame...
Boston Dynamics ha messo le ruote da mon...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v