【发布时间】:2014-05-11 20:41:24
【问题描述】:
我一直致力于将文本文件中的字符串插入 MySQL 数据库。然而,在这些字符串中可能有随机转义字符会影响 BaSH 或 MySQL。最初我试图将整个字符文本文件传递给 MySQL 并在那里处理它。但是现在我认为最好将数据切分并主要在 BaSH 中处理。
我从脚本文件中运行所有内容,但并不是最擅长使用 BaSH,我实际上主要使用 MySQL 或其他语言,如 C# 或 Java。
我知道您可以将其他语言嵌入到 BaSH 脚本中,但是最后我仍然需要将字符串传递给 MySQL 以进行插入,并且我需要保留文本文件的原始值。
那么,有没有一种方法可以将这些字符串传递给 MySQL,而语言只是忽略字符串中的字符,这样它就会保留它而不引起问题?
#!/bin/bash
cd /srv/mysql_PROJ/DB_scripts
echo ""
for dir in `cat ../pathlist.txt`; do
for file in `/bin/ls -1 ${dir}/*.txt`; do
echo "Processing: dir(${dir}) / file(${file}); `cat ${file} | wc`"
mysql -u rpm -p'password' --show-warnings --max_allowed_packet=16M call rpmdb.DataButcher( _utf8'`cat ${file}`');
echo "Data inserted for: `cat ${dir}`"
echo ""
done
done
echo "Data parse and insert: Done."
这是我之前的代码,然后我有一个更复杂的 MySQL 程序来处理它。据我所知,它会命中一个字符并仅将部分文本传递给 MySQL,这会导致 MySQL 出现问题,并且文本文件中的以下行试图作为 BaSH 运行,显然它们不是 BaSH 命令。希望这会有所帮助,这是一个较旧的项目,我一直在回来,最后我看着它,我被搭上了。以崭新的头脑,我试图以不同的方式处理它。
注意:MySQL 中的过程称为“DataButcher”
【问题讨论】:
-
只有文字?提供一些您拥有的代码,以便我们动手!
-
不相关:BaSH 还是 BAsh?