|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#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 |
|
|
|
|
|
#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 sentence
Codice:
./removeSpaces.py "write whatever you want with spaces." ecco l'output Codice:
write whatever you want with spaces.
__________________
|
|
|
|
|
|
#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 |
|
|
|
|
|
|
#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 |
|
|
|
|
|
#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
__________________
|
|
|
|
|
|
|
#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: 18:32.












(sogno, nel bash...)








