[Risolto - Problema aggirato] Far leggere a bash gli spazi

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
fiamma
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 256
Iscrizione: lunedì 31 marzo 2008, 21:05

[Risolto - Problema aggirato] Far leggere a bash gli spazi

Messaggio da fiamma »

Ciao a tutti
ho letto da qualche parte (ma non ricordo dove) che esiste un comando per far leggere a bash gli spazi contenuti in un nome.
Avrei bisogno del file "file con spazi.txt" ma ovviamente bash non riesce a leggere per intero il nome.

Vi ricordate per caso qual è il comando?
Grazie
Ultima modifica di fiamma il giovedì 11 settembre 2008, 15:27, modificato 1 volta in totale.
Avatar utente
tomm
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 796
Iscrizione: lunedì 15 ottobre 2007, 10:16
Desktop: Gnome
Distribuzione: Ubuntu 16.04

Re: Far leggere a bash gli spazi

Messaggio da tomm »

ci sono diversi metodi: Uno è file\ con\ spazi.txt
Un altro è "file con spazi.txt"
Avatar utente
fiamma
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 256
Iscrizione: lunedì 31 marzo 2008, 21:05

Re: Far leggere a bash gli spazi

Messaggio da fiamma »

O mi sono spiegato male o non ho capito.
Avrei bisogno di passare ad un comando un file che nel suo nome ci sono spazi "file con spazi.txt".
Bash vuole che i nomi vengano scritti tutti attaccati, ma mettermi a rinominare centinaia di file è un suicidio, quindi cercavo un comando che leggesse gli spazi.
Avatar utente
mous16
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3940
Iscrizione: mercoledì 25 ottobre 2006, 15:51
Sesso: Maschile

Re: Far leggere a bash gli spazi

Messaggio da mous16 »

facciamo che devi copiare il file "nome con spazio.txt" nella tua home. hai 2 modi
1)

Codice: Seleziona tutto

cp nome\ con\ spazio.txt ~/
2)

Codice: Seleziona tutto

 cp "nome con spazio.txt" ~/
Esattamente come diceva tomm
Pagine personali: Forum Ubuntu-it - Wiki Ubuntu-it - Launchpad
Solo/mous16
Avatar utente
fiamma
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 256
Iscrizione: lunedì 31 marzo 2008, 21:05

Re: Far leggere a bash gli spazi

Messaggio da fiamma »

Ok grazie
allora non avevo capito  :-[
Avatar utente
fiamma
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 256
Iscrizione: lunedì 31 marzo 2008, 21:05

Re: [Risolto] Far leggere a bash gli spazi

Messaggio da fiamma »

Ho cantato vittoria troppo presto.
Il file "file con spazi.txt" lo devo passare al comando sotto forma di variabile e con questi due modi non funizona.
Avatar utente
tomm
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 796
Iscrizione: lunedì 15 ottobre 2007, 10:16
Desktop: Gnome
Distribuzione: Ubuntu 16.04

Re: Far leggere a bash gli spazi

Messaggio da tomm »

non saprei (ma trovi sicuramente la risposta in un tutorial per bash, es http://www.tldp.net/LDP/abs/html/index.html ) ma su questo sito trovi un ottimo script per riniminare tutti i file e cartelle con gli spazi:
http://www.spaghettilinux.org/spaghetti-script/sostituire-spazi-bianchi-con-underscore

guardando nello script probabilmente trovi anche la soluzione al problema
Avatar utente
Guiodic
Accecante Asceta
Accecante Asceta
Messaggi: 28474
Iscrizione: martedì 24 aprile 2007, 15:28
Località: Roma
Contatti:

Re: Far leggere a bash gli spazi

Messaggio da Guiodic »

che vuol dire "come variabile"? intendi come paramentro nella riga di comando? di cosa si tratta? uno script bash, perl, python... o altro?
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [Risolto] Far leggere a bash gli spazi

Messaggio da crap0101 »

fiamma ha scritto: Ho cantato vittoria troppo presto.
Il file "file con spazi.txt" lo devo passare al comando sotto forma di variabile e con questi due modi non funizona.
variabile...come?
marco@gNS:~$ A="file con spazi.txt"
marco@gNS:~$ echo $A
file con spazi.txt
marco@gNS:~$
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Avatar utente
Volans
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4915
Iscrizione: domenica 4 dicembre 2005, 11:25
Contatti:

Re: Far leggere a bash gli spazi

Messaggio da Volans »

Usa le virgolette anche quando usi la variabile ;) :

Codice: Seleziona tutto

A="file con spazi.txt"
ls "${A}"
Volans
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Avatar utente
fiamma
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 256
Iscrizione: lunedì 31 marzo 2008, 21:05

Re: Far leggere a bash gli spazi

Messaggio da fiamma »

Lo script è in bash

cd "$audio"    #$audio è la cartella in cui sono presenti i file
music=`ls`
xterm -e mplayer "$music"

"Cartella con spazi" che contiene "file con spazi.ape"
Avatar utente
Guiodic
Accecante Asceta
Accecante Asceta
Messaggi: 28474
Iscrizione: martedì 24 aprile 2007, 15:28
Località: Roma
Contatti:

Re: Far leggere a bash gli spazi

Messaggio da Guiodic »

forse il problema è che mplayer non vuole spazi nei nomi dei file, poi non sono sicuro che li accetti uno dietro l'altro così...
Avatar utente
Volans
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4915
Iscrizione: domenica 4 dicembre 2005, 11:25
Contatti:

Re: Far leggere a bash gli spazi

Messaggio da Volans »

Allora devi usare music=`ls -Q` che ti mette le virgolette all'output di ls... ;)
Volans
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Avatar utente
fiamma
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 256
Iscrizione: lunedì 31 marzo 2008, 21:05

Re: Far leggere a bash gli spazi

Messaggio da fiamma »

Guiodic ha scritto: forse il problema è che mplayer non vuole spazi nei nomi dei file, poi non sono sicuro che li accetti uno dietro l'altro così...
Ho fatto la prova con dei file senza spazi, e vengono riprodotti uno dietro l'altro.
Se metto i doppi apici alla variabile del comando cd, funizona, ma se metto i doppi apici per la variabile di ls, xterm si apre ma poi si  chiude subito.
Se non metto i doppi apici xterm rimane aperto con scritto
Playning file
File not found: file

Playning senza
File not found:senza

Playning spazio
Reading from stdin
Volans ha scritto: Allora devi usare music=`ls -Q` che ti mette le virgolette all'output di ls... ;)
Non funge, sia se metto i doppi apici a $music sia che no
Avatar utente
Volans
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4915
Iscrizione: domenica 4 dicembre 2005, 11:25
Contatti:

Re: Far leggere a bash gli spazi

Messaggio da Volans »

Scusa fai la prova a mano:

Codice: Seleziona tutto

xterm -e mplayer "file con spazi.ape" "secondo file.ape"
se funziona così allora dovrebbe funzionare con -Q non so però se xterm o mplayer diano problemi.

Se posso perché usi xterm?
Volans
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Avatar utente
fiamma
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 256
Iscrizione: lunedì 31 marzo 2008, 21:05

Re: Far leggere a bash gli spazi

Messaggio da fiamma »

Volans ha scritto: Scusa fai la prova a mano:

Codice: Seleziona tutto

xterm -e mplayer "file con spazi.ape" "secondo file.ape"
se funziona così allora dovrebbe funzionare con -Q non so però se xterm o mplayer diano problemi.

Se posso perché usi xterm?
Se faccio a mano funziona! Se gli passo la variabile no  ???

Sto usando l'interprete buc (interfaccia grafica per script bash) ma se lancio mplayer senza xterm o gnome-terminal l'applicativo si scurisce e quindi non posso cliccare il bottone per interrompere la riproduzione dei file.
Avatar utente
Volans
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4915
Iscrizione: domenica 4 dicembre 2005, 11:25
Contatti:

Re: Far leggere a bash gli spazi

Messaggio da Volans »

Con che utente lo stai lanciando mplayer?
In caso controlla con:
ps ux | grep mplayer
Volans
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Avatar utente
fiamma
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 256
Iscrizione: lunedì 31 marzo 2008, 21:05

Re: Far leggere a bash gli spazi

Messaggio da fiamma »

Volans ha scritto: Con che utente lo stai lanciando mplayer?
In caso controlla con:
ps ux | grep mplayer
Dall'output di questo comando esce il mio nome utente.
Avatar utente
Volans
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4915
Iscrizione: domenica 4 dicembre 2005, 11:25
Contatti:

Re: Far leggere a bash gli spazi

Messaggio da Volans »

Se hai controllato quando mplayer era in esecuzione tramite lo script allora viene lanciato con il tuo stesso utente e dovresti poterlo chiudere se vuoi... sicuro che non fosse un mplayer avviato normalmente dal menu?
Volans
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Avatar utente
fiamma
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 256
Iscrizione: lunedì 31 marzo 2008, 21:05

Re: Far leggere a bash gli spazi

Messaggio da fiamma »

Correggo quanto detto.
Lancio mplayer attraverso lo script, si apre xterm (sul titolo della finestra compare la scrita mplayer) con scritto :
Playning file
File not found: file

Playning senza
File not found:senza

Playning spazio
Reading from stdin

Apro il terminale e digito i comandi che mi hai dato e compare:

mionome  7257  0.5  0.2  10328  3296 ?        S    13:32   0:00 xterm -e mplayer
e l'elenco dei file (dentro alle virgolette) presenti nella cartella scelta.
mionome  7258  1.0  1.0  51056 16336 pts/0    Ss+  13:32   0:00 mplayer
di nuovo  l'elenco dei file (dentro alle virgolette) presenti nella cartella scelta.
mionome  7283  0.0  0.0   3008   760 pts/1    R+   13:32   0:00 grep mplayer
mionome@mionome-desktop:~$

Questo è tutto.
Ultima modifica di fiamma il martedì 9 settembre 2008, 13:41, modificato 1 volta in totale.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 7 ospiti