| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  09-02-2008, 12:10 | #1 | 
| Member Iscritto dal: Sep 2005 Città: Bus PCI 1, periferica 0, funzione 0 (Torino) 
					Messaggi: 213
				 | 
				
				[Bash scripting] Trasformare spazi multipli in uno solo
			 
		Ciao a tutti, domanda molto semplice: come faccio a trasformare spazi multipli in uno solo, con lo scripting Bash di UNIX?? Esempio: Utente@laptop: ls -l -rwxr-xr-x 1 Utente Utente 4548 Feb 7 19:30 signal.c -rw-r--r-- 1 Utente Utente 10635 Feb 11 20:19 signal.exe Come vedete, ovviamente la console mi indenta l'output per fare in modo di vederlo indentato bene, ovvero aggiunge spazi per indentarlo... Se io volessi fare però una cosa del genere Utente@laptop: ls -l | cut -f 5 Questa roba "dovrebbe" stamparmi il 5° field della ls -l Non lo fa, ovviamente, perchè i dati non sono separati da TAB bensì da spazi, e in alcuni casi da spazi multipli! Ovviamente non funziona nemmeno mettendo come delimiter ( -d ) lo spazio: Utente@laptop: ls -l | cut -f 5 -d " " Quindi, domanda finale: come faccio a trasformare gli spazi multipli in uno solo? Senza usare sed, solo con scripting bash normale. C'è qualche comando? 
				__________________ Ho concluso affari con: Ippo 2001, Klintf, albert78, Piripikkio, starsky, oldfield e IL0V€INT€R. da EVITARE zarovat | 
|   |   | 
|  09-02-2008, 13:00 | #2 | 
| Senior Member Iscritto dal: Jul 2002 Città: Reggio Calabria -> London 
					Messaggi: 12112
				 | 
		non sono così masochista da farlo in bash   cmq potresti fare così: Codice: #!/usr/bin/python
import sys
sentence = ''
for word in sys.argv[1].split(' '):
    if (len(word) > 0):
        sentence += word + ' '
print sentenceCodice: ./removeSpaces.py "write whatever you want with spaces."  ecco l'output  Codice: write whatever you want with spaces. 
				__________________   | 
|   |   | 
|  09-02-2008, 13:09 | #3 | |
| Member Iscritto dal: Sep 2005 Città: Bus PCI 1, periferica 0, funzione 0 (Torino) 
					Messaggi: 213
				 | Quote: 
 .split()  (sogno, nel bash...) Il problema è che devo proprio farlo con bash scripting, niente python... infatti guarda secondo me i professori sono scemi a far usare robe "inutili", capisco che bash è potentissimo e ci puoi fare quello che vuoi, ma secondo me è da malati mentali dover imparare una cosa che tanto non si usa, molto meglio scriptare con python che è più veloce e più semplice... Poi oh, ci sono filosofie e filosofie...ma io bash lo trovo una mazzata sui cosiddetti... 
				__________________ Ho concluso affari con: Ippo 2001, Klintf, albert78, Piripikkio, starsky, oldfield e IL0V€INT€R. da EVITARE zarovat | |
|   |   | 
|  09-02-2008, 13:14 | #4 | 
| Member Iscritto dal: Sep 2005 Città: Bus PCI 1, periferica 0, funzione 0 (Torino) 
					Messaggi: 213
				 | 
		TROVATO! TROVATO! Sbaglio sempre a cercare su Google le cose in inglese, basta scrivere in italiano   Dopo circa 1000 ricerche, comunque, eccolo... tr -s " " Sì ma che sbattone! Sto bash lo odio   
				__________________ Ho concluso affari con: Ippo 2001, Klintf, albert78, Piripikkio, starsky, oldfield e IL0V€INT€R. da EVITARE zarovat | 
|   |   | 
|  09-02-2008, 13:16 | #5 | |
| Senior Member Iscritto dal: Jul 2002 Città: Reggio Calabria -> London 
					Messaggi: 12112
				 | Quote: 
  in quel caso avresti potuto usare lo strumento + appropriato, infatti qualche mio amico sistemista ormai ha totalmente abbandonato (per fortuna direi) il bash scripting e il perl in favore del python   
				__________________   | |
|   |   | 
|  09-02-2008, 14:36 | #6 | |
| Senior Member Iscritto dal: Jan 2001 Città: Milano 
					Messaggi: 5707
				 | Quote: 
 dal mio punto di vista apprezzo il potere usare lo stesso strumento ovunque   giusto per la cronaca in perl: ls -l | perl -npe 's/ +/ /g' | |
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 03:18.









 
		 
		 
		 
		









 
  
 



 
                        
                        










