Aéris wrote: > Le 16/09/2011 23:40, Bob Proulx a écrit : > > If there are no *.txt files then the file glob won't be expanded, > > nothing to expand it to, and then your shell script will get a literal > > "*.txt" as an argument. If that minor point is important to you then > > check that the file exists and simply break or continue if it does not. > > > > for i in *.txt; do > > test -f "$i" || continue > > ./add-pre-nl.sh "$i" > > done > > Simplest version : > find -type f -name "*.txt" -exec add-pre-nl.sh {} \;
Ah... Very good! An excellent suggestion! 'find' rocks! I will note three things here however. * One is that the find will recurse down through a possibly deep hierarchy of directories. It isn't an identical alternative for just looking for *.txt in the current directory. But probably that difference isn't important here. Or perhaps that difference will be a really desirable feature. * Secondly if the add-pre-nl.sh script handle multiple file arguments then instead of \; use + so that it calls it fewer times with as many file arguments as possible. It will be more efficient that way. * And lastly that you forgot to include the directory path to find, probably a '.' wanted here. find . -type f -name "*.txt" -exec add-pre-nl.sh {} + :-) Bob
signature.asc
Description: Digital signature