- 追加された行はこの色です。
- 削除された行はこの色です。
- シェル/MySQLにtsvデータをロードする へ行く。
- シェル/MySQLにtsvデータをロードする の差分を削除
*関連 [#te333771] -シェル -sh -MySQL *概要 [#l29565aa] テストでデータをこちょこちょ触るのが面倒だったので作りました。 要件は以下。 -データはtsvファイル -該当テーブルのレコードを全削除してデータをロードする 制限事項は以下。 -データはひとつのディレクトリにまとめて置く -データのファイル名は「*.dat」 *スクリプト [#g285a6ca] -reset.sh #!/bin/sh directory=`./abstpath.sh $1` if [ ! -d ${directory} ] then echo "the directory does not exist." exit fi files=`find ${directory} -maxdepth 1 -name "*.dat"` for file in ${files} do table=`basename ${file} .dat` mysql -u<ユーザ> -p<パスワード> <データベース> -e "DELETE FROM ${table};" mysql -u<ユーザ> -p<パスワード> <データベース> -e "LOAD DATA LOCAL INFILE '${file}' INTO TABLE ${table} FIELDS TERMINATED BY '\t';" echo "${table} < ${file}" done -abstpath.sh #!/bin/sh echo $(cd $(dirname $0) && pwd)/$1 *操作手順 [#y9af4f9b] ┣ reset.sh ┗ data/ ┣ hoge.dat ┗ moge.dat こんなディレクトリ構成になっているとして、 $ ./reset.sh data/ こうするとわーっとなります。 *参考 [#s01a9d8d] -http://blog.hansode.org/archives/51481467.html -http://blog.livedoor.jp/akf0/archives/51638961.html -http://www.atmarkit.co.jp/flinux/rensai/linuxtips/437delfileext.html