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

[root@AY1406121449173218ccZ ~]# ls -lha /www/datebak/--.sql
-rw-r--r-- root root .9G Jun : /www/datebak/--.sql
[root@AY1406121449173218ccZ ~]#

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

[root@AY1406121449173218ccZ datebak]# grep  -n  "ROP TABLE IF EXISTS `activity`" --.sql
-bash: activity: command not found
:DROP TABLE IF EXISTS `activity`;
:DROP TABLE IF EXISTS `activity_img`;
:DROP TABLE IF EXISTS `activity_recommended`;
:DROP TABLE IF EXISTS `atest`;
:DROP TABLE IF EXISTS `black_user`;
:DROP TABLE IF EXISTS `category`;
:DROP TABLE IF EXISTS `class_grade`;
:DROP TABLE IF EXISTS `collocate_banner`;
:DROP TABLE IF EXISTS `course`;
:DROP TABLE IF EXISTS `edu_account_bind`;
:DROP TABLE IF EXISTS `function`;
:DROP TABLE IF EXISTS `head_img`;
:DROP TABLE IF EXISTS `information`;
:DROP TABLE IF EXISTS `information_img`;
:DROP TABLE IF EXISTS `installed_app`;

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

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

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

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

  1. 用C#写一个函数,在一个数组中找出随意几个值相加等于一个值 与迭代器对比

    算法!用C#写一个函数,在一个数组中找出随意几个值相加等于一个值比如,数组{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}  要找出那些数相加等 ...

  2. shell 脚本大文件处理

    shell  脚本大文件处理 字符串处理 s='{"_id":{"$oid":"59b73d80930c17474f9f050d"},&qu ...

  3. js数组操作-找出一组按不同顺序排列的字符串的数组元素

    从一组数组中找出一组按不同顺序排列的字符串的数组元素将字符串转换成数组后再对数组进行 sort 排序,abcd 和 bdca 使用 sort 排序后会变成 abcd,将拍好序的字符串作为对象的 key ...

  4. shell字符串操作技巧

    操作字符串 -------------- Bash支持超多的字符串操作,操作的种类和数量令人惊异.但不幸的是,这些工具缺乏集中性. 一些是参数替换的子集,但是另一些则属于UNIX的expr命令.这就导 ...

  5. Shell拆分大文件

    需求:由于文件过大,不方便进行相关的操作,需要将其拆分成大小小于500000B,即488.28125k的文件.同时,为了保证文件的可读性,行内不可以分割,同时,由于内容是块状可读,按照日期进行分割的, ...

  6. Shell判断某文件夹下是否存在xxx开头的字符串

    Usage: bash judge_prefix_string.sh TARGET_DIR TARGET_STR #!/bin/bash TARGET_DIR=$1 TARGET_STR=$2 ls ...

  7. Windbg找出死锁

    使用Windbg找出死锁,解决生产环境中运行的软件不响应请求的问题 前言 本文介绍本人的一次使用Windbg分析dump文件找出死锁的过程,并重点介绍如何确定线程所等待的锁及判断是否出现了死锁. 对于 ...

  8. Asp.net mvc 大文件上传 断点续传

    Asp.net mvc 大文件上传 断点续传 进度条   概述 项目中需要一个上传200M-500M的文件大小的功能,需要断点续传.上传性能稳定.突破asp.net上传限制.一开始看到51CTO上的这 ...

  9. 使用Windbg找出死锁,解决生产环境中运行的软件不响应请求的问题

    前言 本文介绍本人的一次使用Windbg分析dump文件找出死锁的过程,并重点介绍如何确定线程所等待的锁及判断是否出现了死锁. 对于如何安装及设置Windbg请参考:<使用Windbg和SoS扩 ...

随机推荐

  1. PHP中判断变量为空的几种方法

    判断变量为空,在许多场合都会用到,同时自己和许多新手一样也经常会犯一些错误, 所以自己整理了一下PHP中一些常用的.判断变量为空的方法. 1. isset功能:判断变量是否被初始化本函数用来测试变量是 ...

  2. golang笔记——函数与方法

    如果你遇到没有函数体的函数声明,表示该函数不是以Go实现的. package math func Sin(x float64) float //implemented in assembly lang ...

  3. [Kerberos] User Ticket Management

    Kerberos客户端常用命令包括 kinit, klist, kdestroy, and kpasswd,用户使用这些命令管理自己的 ticket. 此外,每台运行Kerberos的机器应该都配置/ ...

  4. Alpha版本十天冲刺——Day 5

    站立式会议 会前小侃:今天是双11,也是恰逢组内秋鑫同学生日,本组同学祝他双11生日快乐.天气好冷,注意保暖. 会议总结 队员 今天完成 遇到的问题 明天要做 感想 鲍亮 json数据解析学习,完成注 ...

  5. 使用iText对pdf做权限的操作(不允许修改,不允许复制,不允许另存为),并且加水印等

    添加水印,并且增加权限 @Test public void addWaterMark() throws Exception{ String srcFile="D:\\work\\pdf\\w ...

  6. 医学CT图像特征提取算法(matlab实现)

    本科毕设做的是医学CT图像特征提取方法研究,主要是肺部CT图像的特征提取.由于医学图像基本为灰度图像,因此我将特征主要分为三类:纹理特征,形态特征以及代数特征,每种特征都有对应的算法进行特征提取. 如 ...

  7. 精简的网站reset 和 css通用样式库

    参考链接:http://www.zhangxinxu.com/wordpress/2010/07/我是如何对网站css进行架构的/ reset.css body{ line-height:1.4; c ...

  8. 仿Redis用来作前端浏览器的数据存储结构

    用js写了一个类似redis存储结构的类库,目前只有的存储类型只有hash.set两个, 还没测试过性能,欢迎各位猿友能够帮我指出程序代码的缺陷, 后期有时间会完善其他几个类型的存储结构. /**** ...

  9. javaScript的function

    一.函数的声明方式 1.普通的函数声明 function box(num1,num2){ return num1+num2; } 2.使用变量初始化函数 var box=function(num1,n ...

  10. 【Java EE 学习 30】【闪回】【导入导出】【管理用户安全】【分布式数据库】【数据字典】【方案】

    一.闪回 1.可能的误操作 (1)错误的删除了记录 (2)错误的删除了表 (3)查询历史记录 (4)撤销已经提交了的事务. 2.对应着以上四种类型的误操作,有四种闪回类型 (1)闪回表:将表回退到过去 ...