[vox-tech] BASH: ignore space in for loop
Foo Lim
foo at joshuatree.cs.ucdavis.edu
Wed Oct 20 13:22:20 PDT 2004
On Wed, 20 Oct 2004, Dylan Beaudette wrote:
> Hi --
>
> Can't seem to figure out how to make this BASH script do what I would like it
> to do:
>
> I have 2 files:
>
> file A:
> Name of place 1
> Name of place 2
> ...
>
> file B:
> Name of place 1 [tab] code1
> Name of place 1 [tab] code1
> ...
>
> The "Name of place" values often have spaces in them, which seems to be
> confusing a for loop in bash:
>
> running:
> for this_quadname in `cat file_a`; do echo grep -i "$this_quadname" file_b ;
> done
>
> produces this:
> grep -i 'Name' file_b
> grep -i 'of' file_b
> grep -i 'place' file_b
>
> ...so it would seem that the for loop is iterating over both spaces AND
> newlines in the `cat file_a` expression...
Hi,
Try using a while-read loop instead:
while read line; do grep "$line" test2.txt; done < test.txt
Or in your case:
while read this_quadname; do
echo grep -i "$this_quadname" file_b ;
done < file_a
LMK if it works!
HTH,
FL
More information about the vox-tech
mailing list