[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: printf question
From: |
Greg Wooledge |
Subject: |
Re: printf question |
Date: |
Tue, 12 Feb 2013 13:22:02 -0500 |
User-agent: |
Mutt/1.4.2.3i |
On Tue, Feb 12, 2013 at 04:20:53AM -0800, laurent.testut@gmail.com wrote:
> > liste=`ls *.T02`
This is broken because filenames may contain spaces, newlines, etc.
Use an array instead:
liste=(*.T02)
See http://mywiki.wooledge.org/BashPitfalls for an explanation of some
of the issues.
This type of question is more appropriate for the help-bash mailing list,
by the way.
> 1> teqc.exe `ls *.T02` > out.T02
> 2> teqc.exe $liste > out.T02
> 3> teqc.exe "$liste" > out.T02
All of those are wrong, each in its own way.
> What is the proper way of doing this ?
Well, the easiest way would be:
teqc.exe *.T02 > out.T02
If you insist on storing the filenames in advance for some reason, use
an array:
files=(*.T02)
teqc.exe "${files[@]}" > out.T02
If you run into command line length issues, then you may have to process
the array in several chunks. See http://mywiki.wooledge.org/BashFAQ/095
for examples of that.
- printf question, laurent . testut, 2013/02/12
- Re: printf question,
Greg Wooledge <=