erlug
[Top] [All Lists]

Re: [Erlug] [bash] passare come arg filenames with blanks

To: ERlug - Lista Pubblica <erlug@xxxxxxxxxxxxxx>
Subject: Re: [Erlug] [bash] passare come arg filenames with blanks
From: Maurizio Lemmo - Tannoiser <tannoiser@xxxxxxxxxxx>
Date: Tue, 17 Oct 2006 13:19:22 +0200
* martedì 17 ottobre 2006, alle 12:50, Filippo Biondi scrive:
> /* in minima parte mi ricollego ad un post passato ieri */
> 
> supponiamo che voglia passare ad un comando (es. cat) una serie di nomi di
> file che possono contenere spazi e glieli voglio dare uno dietro l'altro, non
> uno per uno (con xargs -0 sarebbe troppo semplice).
> 
> Poniamo che abbia due file:
> 
> fileUno.txt
> pippo Due.txt
> 
> se scrivessi
> 
> cat fileUno.txt pippo\ Due.txt
> 
> non ci sarebbero problemi di sorta.
> 
> Detto questo mi cerco un modo per ottenere via bash la suddetta stringa ed
> ottengo
> 
> ls *.txt |sed -e 's/\ /\\ /g'|tr [:cntrl:] " "
> 
> Pero' se scrivo
> 
> cat `ls *.txt |sed -e 's/\ /\\ /g'|tr [:cntrl:] " "`
> 
> sono dentro FileUno
> cat: pippo: Nessun file o directory
> cat: Due.txt: Nessun file o directory
> 
> dove ovviamente la prima riga e' l'output di cat su fileUno.txt

Ai miei occhi, la soluzione "intelligente" e`:

rename 'y/ /_/' *.txt

Ma non e` quello che hai chiesto. Non sono un sed-guy, quindi non mi
metto nemmeno a guardare quello che hai fatto, e invece propongo un:

IFS=$'\n'
for a in `ls -1 *.txt`; do
cat "$a"
done

?

-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG http://erlug.linux.it
-------------------------------------------------------------------------------
Giles: "Yes, she's lovely in a common, extremely well-proportioned way."
        --Buffy the Vampire Slayer: Teacher's Pet

<Prev in Thread] Current Thread [Next in Thread>