mardi 15 décembre 2015

bash for loop stops after one iteration without error

Lets say I have a file dates.json:

2015-11-01T12:01:52
2015-11-03T03:58:57
2015-11-09T02:43:59
2015-11-10T08:22:00
2015-11-11T05:14:51
2015-11-11T12:47:02
2015-11-13T08:33:40

I want to separate the rows to different files according to the date. I made the following script:

#!/bin/bash
set -e
file="$1"
for i in $(seq 1 1 31); do
    if [ $i -lt 10 ]; then
      echo 'looking for 2015-11-0'$i
      cat $file | grep "2015-11-0"$i > $i.json
    else
      echo 'looking for 2015-11-'$i
      cat $file | grep "2015-11-"$i > $i.json
    fi
done

When I execute I get the following:

$ bash example.sh dates.json
looking for 2015-11-01
looking for 2015-11-02

If I try without the cat... rows the script prints all the echo commands, and if I try only the cat | grep command on the command line it works.

Would you know why does it behave like this?

Aucun commentaire:

Enregistrer un commentaire