> (I expect you need to double that backslash.) The backslash is there to escape the double quote, so that the resulting argument following `-csv` will be `|iconv -f l1 < trans.csv | grep '^"20' | tail -r` That string, in its turn, should be parsed by `/bin/sh` so that the argument that `grep` sees is `^"20` meaning a line beginning with the three characters `"20`. And indeed, the data winding up in the database file is consistent with my expectations, so I think I got the number of backslashes right.