Bash ‘for’ Loop and Filenames With Spaces

A quick post for my own future reference, primarily.

After banging me face off the desk for a while trying to figure out how to batch-convert a heaping spoonful of space-laden-named Excel files to CSV for a project I’m doing for my wife, I found a solution in the $IFS environment variable. Thus:

#!/bin/bash
IFSTMP=$IFS;
IFS=$(echo -en "\n\b");
for i in $(ls -1 *.xls); do
xls2csv $i > $i.csv 2>/dev/null;
done;
IFS=$IFSTMP;

Easy as pie. And I don’t mean like a mince pie or something that many folks don’t even like, but like convincing toddler to eat a chocolate cream pie. Yeah, that easy.

Share

2 comments

  1. Eco-insulation

    Oh, I Don't Know…. » Bash ‘for’ Loop and Filenames With Spaces

  2. cannabisclub says:

    cannabisclub

    Oh, I Don't Know…. » Bash ‘for’ Loop and Filenames With Spaces

Leave a Reply

Your email address will not be published. Required fields are marked *

The CAPTCHA cannot be displayed. This may be a configuration or server problem. You may not be able to continue. Please visit our status page for more information or to contact us.

This site uses Akismet to reduce spam. Learn how your comment data is processed.