[Risolto] Aiuto per pipe di cut, sort e uniq
[Risolto] Aiuto per pipe di cut, sort e uniq
Per favore mi aiutate?
Con questo comando " ls -R | cut -f1 -d '•' | sort | uniq -c "
ottengo una lista di file unici e le loro quantità (7 di "A", 9 di "AB" etc...) però mi dà anche tutto il resto come vedete...
Secondo voi si può fare con un semplice comandino da aggiungere alla pipe?
O bisogna per forza usare funzioni e cose complicate che ancora non conosco?
Il mio sogno sarebbe fargli contare quanti sono i file unici, in questo caso 15
Mac-Pro-di-E:~ EB$ ls -R /Volumes/IMMAGINI/Users/EB/Documents/fare\ back\ up/SHELL/ProveShell\ copia/ | cut -f1 -d '•' | sort | uniq -c;
4
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia//cartella senza titolo 2:
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia//cartella senza titolo 3:
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia//cartella senza titolo 4:
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia//cartella senza titolo:
7 A
9 AB
4 ABC
23 ABD
1 ABD
1 ABR
1 AX
1 CB
1 CXD
1 DB
1 EB
1 F
1 GF
1 HF
5 XCCVVV
1 cartella senza titolo
1 cartella senza titolo 2
1 cartella senza titolo 3
1 cartella senza titolo 4
Se non si può rimuovere tutta quella pappardella non mi farà mai il conto giusto
Se mi dite che con una semplice pipe non si può fare allora desisto
e mi accontenterei di usare uno stratagemma, copiare la selezione delle righe in BBedit che mi conta le righe di default.
Il problema è che il risultato sarebbe di decine di migliaia di righe, per cui è poco pratico eseguire la selezione, ecc...
Se almeno ci fosse un modo perchè " | sort | uniq -c " mi restuisse solo i risultati e non il resto sarebbe già un passo in avanti
Con questo comando " ls -R | cut -f1 -d '•' | sort | uniq -c "
ottengo una lista di file unici e le loro quantità (7 di "A", 9 di "AB" etc...) però mi dà anche tutto il resto come vedete...
Secondo voi si può fare con un semplice comandino da aggiungere alla pipe?
O bisogna per forza usare funzioni e cose complicate che ancora non conosco?
Il mio sogno sarebbe fargli contare quanti sono i file unici, in questo caso 15
Mac-Pro-di-E:~ EB$ ls -R /Volumes/IMMAGINI/Users/EB/Documents/fare\ back\ up/SHELL/ProveShell\ copia/ | cut -f1 -d '•' | sort | uniq -c;
4
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia//cartella senza titolo 2:
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia//cartella senza titolo 3:
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia//cartella senza titolo 4:
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia//cartella senza titolo:
7 A
9 AB
4 ABC
23 ABD
1 ABD
1 ABR
1 AX
1 CB
1 CXD
1 DB
1 EB
1 F
1 GF
1 HF
5 XCCVVV
1 cartella senza titolo
1 cartella senza titolo 2
1 cartella senza titolo 3
1 cartella senza titolo 4
Se non si può rimuovere tutta quella pappardella non mi farà mai il conto giusto
Se mi dite che con una semplice pipe non si può fare allora desisto
e mi accontenterei di usare uno stratagemma, copiare la selezione delle righe in BBedit che mi conta le righe di default.
Il problema è che il risultato sarebbe di decine di migliaia di righe, per cui è poco pratico eseguire la selezione, ecc...
Se almeno ci fosse un modo perchè " | sort | uniq -c " mi restuisse solo i risultati e non il resto sarebbe già un passo in avanti
Ultima modifica di trekfan1 il giovedì 28 marzo 2019, 5:25, modificato 2 volte in totale.
Motivazione: Il [Risolto] va messo con le parentesi quadre, grazie
Motivazione: Il [Risolto] va messo con le parentesi quadre, grazie
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
- UbuNuovo
- Imperturbabile Insigne
- Messaggi: 4446
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: Aiuto per pipe di cut, sort e uniq
potresti provare ad usare 'find' al posto di 'ls -R' e stampare solo i file.
o forse meglio così:
Codice: Seleziona tutto
find '/Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia' -type f | cut -f1 -d '•' | sort | uniq -c
Codice: Seleziona tutto
find '/Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia' -type f -name '*•*'| cut -f1 -d '•' | sort | uniq -c
Salva l'Ucraina!
Re: Aiuto per pipe di cut, sort e uniq
Sì, grazie,UbuNuovo ! !
Ci sarebbe anche un modo per pulirlo dai percorsi? Mi viene così
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/.DS_Store
23 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 2/ABD
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 2/ABD
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 2/ABR
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 2/CXD
5 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 2/XCCVVV
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 3/.DS_Store
7 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 3/A
2 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 3/AB
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 3/CB
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 3/DB
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 3/EB
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 4/F
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 4/GF
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 4/HF
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo/.DS_Store
7 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo/AB
4 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo/ABC
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo/AX
Ci sarebbe anche un modo per pulirlo dai percorsi? Mi viene così
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/.DS_Store
23 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 2/ABD
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 2/ABD
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 2/ABR
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 2/CXD
5 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 2/XCCVVV
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 3/.DS_Store
7 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 3/A
2 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 3/AB
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 3/CB
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 3/DB
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 3/EB
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 4/F
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 4/GF
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo 4/HF
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo/.DS_Store
7 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo/AB
4 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo/ABC
1 /Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia/cartella senza titolo/AX
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
Re: Aiuto per pipe di cut, sort e uniq
Però, UbuNuovo, devo dire che c'è un problemino.... find mi conta gli unici cartella per cartella...
non me ne ero accorto perchè avevo un solo caso in due cartelle.... per cui le righe sopno diventate 16 e non corrispondo ai file unici che sono 15
non me ne ero accorto perchè avevo un solo caso in due cartelle.... per cui le righe sopno diventate 16 e non corrispondo ai file unici che sono 15
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
- UbuNuovo
- Imperturbabile Insigne
- Messaggi: 4446
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: Aiuto per pipe di cut, sort e uniq
il confronto viene fatto sull'intera riga quindi stessi file in directory diverse risultano unici, prova così:
Codice: Seleziona tutto
find '/Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia' -type f -name '*•*' -exec basename "{}" \; | cut -f1 -d '•' | sort | uniq -c
Salva l'Ucraina!
Re: Aiuto per pipe di cut, sort e uniq
GRAZIE!!!
E' un risultato che inseguivo da un sacco di tempo!!
Adesso con questi comandi:
find 'PATH' -type f -name '*•*' -exec basename "{}" \; | cut -f1 -d '•' | sort | uniq -c;
find 'PATH' -type f -name '*•*' -exec basename "{}" \; | cut -f1 -d '•' | sort | uniq -c | wc -l;
find 'PATH' -type f | grep -c '•'
ottengo:
[img]
https://i.imgur.com/RtH6uWz.jpg
[/img]
Adesso chiedo si sono suggerimenti dal punto di vista estetico?
Ad esempio avere il totale dei file "42" che adesso è tutto a sinistra si potrebbe allineare agli altri risultati?
ma cmq grazie ancora!
E' un risultato che inseguivo da un sacco di tempo!!
Adesso con questi comandi:
find 'PATH' -type f -name '*•*' -exec basename "{}" \; | cut -f1 -d '•' | sort | uniq -c;
find 'PATH' -type f -name '*•*' -exec basename "{}" \; | cut -f1 -d '•' | sort | uniq -c | wc -l;
find 'PATH' -type f | grep -c '•'
ottengo:
[img]
https://i.imgur.com/RtH6uWz.jpg
[/img]
Adesso chiedo si sono suggerimenti dal punto di vista estetico?
Ad esempio avere il totale dei file "42" che adesso è tutto a sinistra si potrebbe allineare agli altri risultati?
ma cmq grazie ancora!
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
- UbuNuovo
- Imperturbabile Insigne
- Messaggi: 4446
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: Aiuto per pipe di cut, sort e uniq
Puoi eliminare gli spazi multipli a sinistra mettendo alla fine dei comandi:
p.s. Invece delle schermate, copia e incolla il testo dal terminale nella textarea, selezioni tutto e premi il pulsante "Codice"
Codice: Seleziona tutto
VECCHIA_RIGA_COMANDO | sed 's/ \+//g'
Salva l'Ucraina!
Re: Aiuto per pipe di cut, sort e uniq
UbuNuovo [url=https://forum.ubuntu-it.org/viewtopic.php?p=5125142#p5125142][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Puoi eliminare gli spazi multipli a sinistra mettendo alla fine dei comandi:p.s. Invece delle schermate, copia e incolla il testo dal terminale nella textarea, selezioni tutto e premi il pulsante "Codice"Codice: Seleziona tutto
VECCHIA_RIGA_COMANDO | sed 's/ \+//g'
Codice: Seleziona tutto
Last login: Wed Mar 27 20:01:09 on ttys017
Mac-Pro-di-E:~ EB$ find /Volumes/IMMAGINI/Users/EB/Documents/fare\ back\ up/SHELL/ricerca\ vecchia/ProveShell\ copia -type f -name '*◦*' -exec basename "{}" \; | cut -f1 -d '◦' | sort | uniq -c | sed 's/ \+//g';
2 AB
4 ABC
24 ABD
1 ABD
1 ABD1
1 ABR
1 F
1 HF
1 HFF
1 PLçIOO
2 SZX
1 XCCCCXCCCCV
1 XCCVVV
1 XXXX
Mac-Pro-di-E:~ EB$ find /Volumes/IMMAGINI/Users/EB/Documents/fare\ back\ up/SHELL/ricerca\ vecchia/ProveShell\ copia -type f -name '*◦*' -exec basename "{}" \; | cut -f1 -d '◦' | sort | uniq -c | wc -l | sed 's/ \+//g';
14
Mac-Pro-di-E:~ EB$ find /Volumes/IMMAGINI/Users/EB/Documents/fare\ back\ up/SHELL/ricerca\ vecchia/ProveShell\ copia -type f | grep -c '◦' | sed 's/ \+//g';
42
Mac-Pro-di-E:~ EB$
Ti posso dire che c'è un effetto c'è stato anche se qui non si vede: nel Terminale ha messo una lieve righetta verticale alla sinistra a fianco del "4" che corriponde al "Contrassegna come prompt"...
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
- UbuNuovo
- Imperturbabile Insigne
- Messaggi: 4446
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: (RISOLTO) Aiuto per pipe di cut, sort e uniq
L'hai messo bene!
Forse 'sed' del Mac funziona in un altro modo.
Prova a levare l'escape al '+'.
Il punto e virgola finale non serve ma non credo che sia la causa del problema.
Forse 'sed' del Mac funziona in un altro modo.
Prova a levare l'escape al '+'.
Il punto e virgola finale non serve ma non credo che sia la causa del problema.
Salva l'Ucraina!
Re: (RISOLTO) Aiuto per pipe di cut, sort e uniq
Sì, il punto e virgola finale non influisceUbuNuovo [url=https://forum.ubuntu-it.org/viewtopic.php?p=5125238#p5125238][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:L'hai messo bene!
Forse 'sed' del Mac funziona in un altro modo.
Prova a levare l'escape al '+'.
Il punto e virgola finale non serve ma non credo che sia la causa del problema.
Grazie per avermi confermato che la posizione è giusta. Probabile che ci sia qualche piccola differenza col Mac.
Con calma approfondirò e se lo risolverò posterò la soluzione.
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
- UbuNuovo
- Imperturbabile Insigne
- Messaggi: 4446
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: (RISOLTO) Aiuto per pipe di cut, sort e uniq
Ho dato un'occhiata, il Mac usa sed di BSD e sembra che non supporti il quantificatore'\+'
Prova:
Prova:
Codice: Seleziona tutto
VECCHIO_CODICE | sed 's/ \{1,\}//'
Salva l'Ucraina!
Re: [Risolto] Aiuto per pipe di cut, sort e uniq
Non va, sai... Ma quel comando toglie o aggiunge spazi?
Con alcune modifiche che ho provato il risultato è salito, andando fianco al punto e virgola... come fosse stato tolto un a capo.
A me piacerebbe aggiungere degli spazi per allinearlo agli altri che sono centrati.
Con alcune modifiche che ho provato il risultato è salito, andando fianco al punto e virgola... come fosse stato tolto un a capo.
A me piacerebbe aggiungere degli spazi per allinearlo agli altri che sono centrati.
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
- UbuNuovo
- Imperturbabile Insigne
- Messaggi: 4446
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: [Risolto] Aiuto per pipe di cut, sort e uniq
Se non ti funge neanche quello, '*' dovrebbe funzionare allo stesso modo per Mac e Linux; prova questo
L'altra espressione era fatta per lasciare eventuali spazi unici ed eliminare gli spazi multipli.
Questa elimina tutti gli spazi iniziali:
Se funge, per avere una spaziatura iniziale costante (10 spazi) puoi provare:
P.S.:
Codice: Seleziona tutto
sed 's/^ *//'
Questa elimina tutti gli spazi iniziali:
Se funge, per avere una spaziatura iniziale costante (10 spazi) puoi provare:
Codice: Seleziona tutto
sed 's/^ */ /'
Mac OS X ships with a version of sed that, while mostly functional, is feature incomplete, and in some cases just broken. To fix this, I would recommend installing gnu-sed to replace the built-in version of sed on OS X machines. If you are on a Mac, the best and easiest way to install gnu-sed is using Homebrew.
Salva l'Ucraina!
Re: [Risolto] Aiuto per pipe di cut, sort e uniq
è andato!UbuNuovo [/url] ha scritto:
L'altra espressione era fatta per lasciare eventuali spazi unici ed eliminare gli spazi multipli.
Questa elimina tutti gli spazi iniziali:
Se funge, per avere una spaziatura iniziale costante (10 spazi) puoi provare:Codice: Seleziona tutto
sed 's/^ */ /'
homebrew...UbuNuovo[url=https://forum.ubuntu-it.org/viewtopic.php?p=5125385#p5125385][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: P.S.:Mac OS X ships with a version of sed that, while mostly functional, is feature incomplete, and in some cases just broken. To fix this, I would recommend installing gnu-sed to replace the built-in version of sed on OS X machines. If you are on a Mac, the best and easiest way to install gnu-sed is using Homebrew.
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 17 ospiti