温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何利用shell删除数据表中指定信息和字段对应的文件

发布时间:2021-07-26 21:54:30 来源:亿速云 阅读:337 作者:chen 栏目:开发技术

这篇文章主要介绍“如何利用shell删除数据表中指定信息和字段对应的文件”,在日常操作中,相信很多人在如何利用shell删除数据表中指定信息和字段对应的文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何利用shell删除数据表中指定信息和字段对应的文件”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

利用mysql shell命令读取数据库信息,删除指定字段,以及字段对应的文件,适用Linux平台。

前面变量定义为数据基本配置

代码如下:


#!/bin/bash
#Program
#    delete the database'info whick state is 3
#History:
#  2014/2/23  cjp  First release
#  2014/3/5/  cjp  change value'setting on 117
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/usr/local/bin:/usr/local/sbin:~/bin
export PATH

host="127.0.0.1"
port="3306"
user="user"
passwd="passwd"
dbname="database"
tablename="table"
field="t_field"
outField="t_id,t_path"
fileRootPath="/var/www/html/apath"
filePath=""

#checkdown data
mysql -h$host -P$port -u$user -p$passwd $dbname -e "SET NAMES utf8;SELECT ${outField} FROM ${tablename} WHERE ${field} = 3" > data_info

date -d '1970-01-01 UTC 946684800 seconds' +"%Y-%m-%d %z" >> del_log.log

#delete image file and mysql data
sed '1d' data_info | while read line
do
  echo $line > findtemp
  awk '{print $2}' findtemp > imagetemp
  cat imagetemp | while read imagedata
  do
    filePath=${fileRootPath}${imagedata}
    echo $filePath >> del_log.log
    rm -f $filePath
  done

  awk '{print $1}' findtemp > idtemp
  cat idtemp | while read iddata
  do
    mysql -h$host -P$port -u$user -p$passwd $dbname -e "SET NAMES utf8;DELETE FROM ${tablename} WHERE s_id = ${iddata}"
  done
done

rm -f data_info
rm -f imagetemp
rm -f idtemp

echo "^-^ clean!"

到此,关于“如何利用shell删除数据表中指定信息和字段对应的文件”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI