[Risolto] Aiuto per pipe di cut, sort e uniq

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

[Risolto] Aiuto per pipe di cut, sort e uniq

Messaggio da eb-ash »

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
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
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?
Avatar utente
UbuNuovo
Imperturbabile Insigne
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

Messaggio da UbuNuovo »

potresti provare ad usare 'find' al posto di 'ls -R' e stampare solo i file.

Codice: Seleziona tutto

find '/Volumes/IMMAGINI/Users/EB/Documents/fare back up/SHELL/ProveShell copia' -type f | cut -f1 -d '•' | sort | uniq -c
o forse meglio così:

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! 🇺🇦
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: Aiuto per pipe di cut, sort e uniq

Messaggio da eb-ash »

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
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?
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: Aiuto per pipe di cut, sort e uniq

Messaggio da eb-ash »

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 :muro:
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?
Avatar utente
UbuNuovo
Imperturbabile Insigne
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

Messaggio da UbuNuovo »

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! 🇺🇦
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: Aiuto per pipe di cut, sort e uniq

Messaggio da eb-ash »

GRAZIE!!!
:birra:
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?
Avatar utente
UbuNuovo
Imperturbabile Insigne
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

Messaggio da UbuNuovo »

Puoi eliminare gli spazi multipli a sinistra mettendo alla fine dei comandi:

Codice: Seleziona tutto

VECCHIA_RIGA_COMANDO | sed 's/  \+//g'
p.s. Invece delle schermate, copia e incolla il testo dal terminale nella textarea, selezioni tutto e premi il pulsante "Codice"
Salva l'Ucraina! 🇺🇦
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: Aiuto per pipe di cut, sort e uniq

Messaggio da eb-ash »

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:

Codice: Seleziona tutto

VECCHIA_RIGA_COMANDO | sed 's/  \+//g'
p.s. Invece delle schermate, copia e incolla il testo dal terminale nella textarea, selezioni tutto e premi il pulsante "Codice"




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$ 
E' rimasto come prima, mi sa che non so se lo messo nel posto giusto.... :S

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?
Avatar utente
UbuNuovo
Imperturbabile Insigne
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

Messaggio da UbuNuovo »

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.
Salva l'Ucraina! 🇺🇦
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: (RISOLTO) Aiuto per pipe di cut, sort e uniq

Messaggio da eb-ash »

UbuNuovo [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.
Sì, il punto e virgola finale non influisce

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?
Avatar utente
UbuNuovo
Imperturbabile Insigne
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

Messaggio da UbuNuovo »

Ho dato un'occhiata, il Mac usa sed di BSD e sembra che non supporti il quantificatore'\+'
Prova:

Codice: Seleziona tutto

VECCHIO_CODICE | sed 's/  \{1,\}//'
Salva l'Ucraina! 🇺🇦
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: [Risolto] Aiuto per pipe di cut, sort e uniq

Messaggio da eb-ash »

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.
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?
Avatar utente
UbuNuovo
Imperturbabile Insigne
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

Messaggio da UbuNuovo »

Se non ti funge neanche quello, '*' dovrebbe funzionare allo stesso modo per Mac e Linux; prova questo

Codice: Seleziona tutto

sed 's/^ *//'
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/^ */     /'
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.
Salva l'Ucraina! 🇺🇦
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: [Risolto] Aiuto per pipe di cut, sort e uniq

Messaggio da eb-ash »

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/^ */     /'
è andato!
:birra:


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.
homebrew...
:birra:
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?
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 17 ospiti