Я создал скрипт Bash для просмотра файлов в каталоге, извлечения данных на основе идентификатора, а затем использования этих данных для заполнения таблицы sqlite3. Кажется, некоторая информация будет заполнена в той же строке, что и ключ, а другая - нет. Сценарий выглядит следующим образом:
#!/bin/bash
sqlite3 review.sql "CREATE TABLE Review(Review_ID INTEGER PRIMARY KEY, Author TEXT, Date TEXT);"
path="/home/me/Downloads/test/*"
for i in $path
do
total=$(grep -c '<Author>' $i)
count=1
while [ $count -le $total ]
do
date=$(grep -m$count '<Date>' $i | sed 's#<Date>##' | tail -n1)
author=$(grep -m$count '<Author>' $i | sed 's#<Author>##' | tail -n1)
sqlite3 review.sql "INSERT INTO Review(Author,Date) VALUES('$author','$date');"
((count++))
done
done
Файлы, которые я просматриваю, выглядят так:
<Author>john
<Date>Jan 6, 2009
<Author>jacob
<Date>Dec 26, 2008
<Author>rachael
<Date>Dec 14, 2008
когда я запрашиваю первичный ключ и атрибуты даты, я получаю это как ожидалось
sqlite> SELECT Review_ID, Date FROM Review;
Review_ID Date
---------- ------------
1 Jan 6, 2009
2 Dec 26, 2008
3 Dec 14, 2008
4 Jan 7, 2009
5 Jan 5, 2009
6 Nov 14, 2008
но когда я запрашиваю первичный ключ и автора, я получаю это
sqlite> SELECT Review_ID, Author FROM Review;
Review_ID Author
---------- ----------
john
jacob
rachael
Jean
kareem
may
После проведения еще одного тестирования определенно возникают проблемы с некоторыми текстовыми строками. Например, я попытался добавить фамилии и получить такой результат:
Review_ID Author
---------- ------------
1 john jacob
2 jacob richa
rae simon
Jean jak
5 kareem jabr
6 may flower
Это работает лучше, но все еще не нравится пара из них, я подумал, может быть, что-то делать с тремя буквами, но тогда «май» не появится, но, действительно, если я добавлю букву в «rae» "и письмо" jak "3 и 4 действительно отображаются в столбце Review_ID. Я заметил, что то же самое происходит, если столбец содержит «$», например, в «$ 173». Текст, я действительно не могу понять, хотя, кажется, нет очевидного абсолютного образца того, что он принимает, а что нет. Я составил имена, чтобы упростить этот пост, но просто для того, чтобы привести еще несколько примеров, я включу еще несколько примеров из того, с чем я на самом деле работаю, чтобы показать еще несколько строк, которые работают, и те, которые не работают .
1 everywhereman2
RW53
Marilyn1949
fallriverma
8 SweetwaterMill
AuntSusie006
13 Traveler34NewJe
madmatriarch
2 Savvytourist2
greatvictory
25 Lightsleeper999
strollaround
30 Lucygoosey1985
lesbriggs
3 miguelluna019
lulubaby
1 myassesdragon
tomu023
BrettOcean
46 A TripAdvisor M
dmills1956
julcarl
49 A TripAdvisor M
TSW42
lass=