昨天端午,晚上的时候接了一个电话,我朋友的公司,数据库被两个工作没多久的phper给弄坏了,具体就是把一个字段值,给全表弄成一个了名字了,当然这个是可以配置了禁止全表更新数据库,这下可急坏了,找到我,叫我给看一下,他们每天3:00是有备份的,按天备份,还好不是增量的,当然binlog日志也是开启的,我看了一下他们的备份文件是

[root@AY1406121449173218ccZ ~]# ls -lha /www/datebak/2016-06-09.sql
-rw-r--r-- 1 root root 4.9G Jun  9 03:03 /www/datebak/2016-06-09.sql
[root@AY1406121449173218ccZ ~]#

他们整个备份文件有5G,当然恢复的效果有多种,我想了一下,把他们今天这一整天的注册的用户给弄出来,也没有多少就10多个,然后就是想办法在这5个G的数据中把我需要的表找出来。

[root@AY1406121449173218ccZ datebak]# grep  -n  "ROP TABLE IF EXISTS `activity`" 2016-06-09.sql
-bash: activity: command not found
22:DROP TABLE IF EXISTS `activity`;
67:DROP TABLE IF EXISTS `activity_img`;
93:DROP TABLE IF EXISTS `activity_recommended`;
124:DROP TABLE IF EXISTS `atest`;
149:DROP TABLE IF EXISTS `black_user`;
175:DROP TABLE IF EXISTS `category`;
204:DROP TABLE IF EXISTS `class_grade`;
232:DROP TABLE IF EXISTS `collocate_banner`;
262:DROP TABLE IF EXISTS `course`;
330:DROP TABLE IF EXISTS `edu_account_bind`;
366:DROP TABLE IF EXISTS `function`;
392:DROP TABLE IF EXISTS `head_img`;
418:DROP TABLE IF EXISTS `information`;
455:DROP TABLE IF EXISTS `information_img`;
480:DROP TABLE IF EXISTS `installed_app`;

通过 shell的 grep 这个命令,我们可以找出我们需要的表中的行数

sed -n '5112,5153p' 2016-06-09.sql > tb_user_info.sql

再通过sed 命令将我们找到的行号写入另一个文件中,这样,基本就解决了,然后,把我导出来的数据 给导入原来的数据中,然后再将导出的一天的数据给导入,就解决了问题,整个解决问题的时间,没有超 过1小时,主要是shell 没有经常用,还查了下资料,当然思路也是最重要的,解决问题,第一个,要有一个清析的思路,把整个过程,好好过几下,要不然,考滤不全,会造成更多的问题

shell在一个大文件找出想要的一段字符串操作技巧相关推荐

  1. 两个大文件找出相同的一条记录

    #include "stdafx.h" #include <iostream> #pragma warning(disable : 4786)//这句话的位置必须是这里 ...

  2. python求近似值_python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配...

    已知一个元素,在一个list中找出相似的元素 使用场景: 已知一个其它来源的字符串, 它有可能是不完全与我数据库中相应的字符串匹配的,因此,我需要将其转为适合我数据库中的字符串 使用场景太绕了, 直接 ...

  3. python 已知一个字符,在一个list中找出近似值或相似值, 模糊匹配

    已知一个元素,在一个list中找出相似的元素 使用场景: 已知一个其它来源的字符串, 它有可能是不完全与我数据库中相应的字符串匹配的,因此,我需要将其转为适合我数据库中的字符串 使用场景太绕了, 直接 ...

  4. linux下比较文件并输出,Linux使用diff命令比较文件找出文件之间相同的部分

    如果你需要比较系统文件的内容,那么你就会是使用到diff命令,可找出文件之间相同的部分,下面小编就给大家详细介绍下Linux diff命令的用法. diff 命令是 linux上非常重要的工具,用于比 ...

  5. Java头文件找出循环依赖_Node.js 如何找出循环依赖的文件?如何解决循环依赖问题?...

    本文重点是讲解如何解决循环依赖这个问题.关心这个问题是如何产生的,可以自行谷歌. 如何重现这个问题 // a.js const {sayB} = require('./b.js') sayB() fu ...

  6. 服务器搭建本地局域网下载文件(sz下载大文件总是出问题)

    sz 大文件的时候传到一半中断不传输 1)进入到文件目录(该目录将成为根目录) 2) 执行python -m SimpleHTTPServer,获取端口号,一般port是8000.如果想更改端口号,直 ...

  7. Linux Shell脚本专栏_找出占用CPU/内存过高的进程_05

    文章目录 找出占用CPU/内存过高的进程 1. 脚本 2. 运行脚本 3. 效果图 找出占用CPU/内存过高的进程 1. CPU 过高的进程2. 内存 过高的进程 1. 脚本 #/bin/bash e ...

  8. php301快照劫持代码,js被挂百度快照劫持了,求大神找出代码

    [JavaScript] 纯文本查看 复制代码< !-- //页面显示预设置 $(document).ready(function() { //当存在可溢出层时重新定义这些层的高度 var ge ...

  9. 找出连续最长数字串python_字符串中找出连续最长的数字字符串的实例代码

    //1. 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr) //功能: //在字符串中找出连续最长的数字串,并把这个串的长度返回, ...

最新文章

  1. 21种代码的“坏味道”
  2. 昆明理工大学复试计算机试题,2012年昆明理工大学计算机考研复试试题(.PDF
  3. dex、apk完整性校验
  4. Windows Phone 8 获取与监听网络连接状态
  5. 最经典25本Python编程开发电子书精粹
  6. 几款免费好用的OCR工具
  7. 算法设计与分析第三章习题解答与学习指导(第2版)屈婉婷 刘田 张立昂 王捍贫编著 清华大学出版社
  8. eyoucms栏目类型介绍
  9. 文件上传利器SWFUpload入门简易教程(转)
  10. 《图解HTTP》笔记
  11. 100多个经典常用的jQuery插件大全实例演示和下载
  12. 快速排序(填坑法的两种写法以及交换法)
  13. python读取文件夹中的所有图片并将图片名逐行写入txt中
  14. C语言输出三阶魔方阵
  15. Java面向对象和面向过程的区别
  16. Echarts学习总结(一)-----柱状图
  17. 01_Dive_into_python (reading note)
  18. 简易切换图片效果和简易年历
  19. 26.Nginx详解
  20. 安科瑞AFL-T系列分流器最大额定电流10kA,结构上≤50A时采用塑料底座固定安装,>50A时直接用铜端子固定安装

热门文章

  1. Vboxmanage改动uuid报错的解决的方法
  2. 百度社会化分享组件使用问题
  3. (转)结婚那天,妈问我:坐在角落里象两个要饭模样的人是谁?
  4. docker安装mysql redis_Docker安装Mysql和Redis以及构建部署应用镜像
  5. 什么是U-Boot以及如何下载U-Boot源码
  6. ARM(IMX6U)BSP工程文件管理(分文件编程)
  7. 2021年慈溪横河中学高考成绩查询,慈溪中学
  8. PC寄存器为什么会被设定为线程私有
  9. 什么是CharSequence
  10. 收集一些非常实用的Linux命令