shell在一个大文件找出想要的一段字符串操作技巧
昨天端午,晚上的时候接了一个电话,我朋友的公司,数据库被两个工作没多久的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在一个大文件找出想要的一段字符串操作技巧的更多相关文章
- 用C#写一个函数,在一个数组中找出随意几个值相加等于一个值 与迭代器对比
算法!用C#写一个函数,在一个数组中找出随意几个值相加等于一个值比如,数组{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20} 要找出那些数相加等 ...
- shell 脚本大文件处理
shell 脚本大文件处理 字符串处理 s='{"_id":{"$oid":"59b73d80930c17474f9f050d"},&qu ...
- js数组操作-找出一组按不同顺序排列的字符串的数组元素
从一组数组中找出一组按不同顺序排列的字符串的数组元素将字符串转换成数组后再对数组进行 sort 排序,abcd 和 bdca 使用 sort 排序后会变成 abcd,将拍好序的字符串作为对象的 key ...
- shell字符串操作技巧
操作字符串 -------------- Bash支持超多的字符串操作,操作的种类和数量令人惊异.但不幸的是,这些工具缺乏集中性. 一些是参数替换的子集,但是另一些则属于UNIX的expr命令.这就导 ...
- Shell拆分大文件
需求:由于文件过大,不方便进行相关的操作,需要将其拆分成大小小于500000B,即488.28125k的文件.同时,为了保证文件的可读性,行内不可以分割,同时,由于内容是块状可读,按照日期进行分割的, ...
- Shell判断某文件夹下是否存在xxx开头的字符串
Usage: bash judge_prefix_string.sh TARGET_DIR TARGET_STR #!/bin/bash TARGET_DIR=$1 TARGET_STR=$2 ls ...
- Windbg找出死锁
使用Windbg找出死锁,解决生产环境中运行的软件不响应请求的问题 前言 本文介绍本人的一次使用Windbg分析dump文件找出死锁的过程,并重点介绍如何确定线程所等待的锁及判断是否出现了死锁. 对于 ...
- Asp.net mvc 大文件上传 断点续传
Asp.net mvc 大文件上传 断点续传 进度条 概述 项目中需要一个上传200M-500M的文件大小的功能,需要断点续传.上传性能稳定.突破asp.net上传限制.一开始看到51CTO上的这 ...
- 使用Windbg找出死锁,解决生产环境中运行的软件不响应请求的问题
前言 本文介绍本人的一次使用Windbg分析dump文件找出死锁的过程,并重点介绍如何确定线程所等待的锁及判断是否出现了死锁. 对于如何安装及设置Windbg请参考:<使用Windbg和SoS扩 ...
随机推荐
- SQL2005解密已经被加密的存储过程
SQL2005解密已经被加密的存储过程 第一步:打开DAC连接功能 第二步:在MASTER数据库创建一个解密存储过程 USE master GO CREATE PROCEDURE [dbo].[sp_ ...
- 移动端框架篇-控制子容器的滑屏框架-fullPage.js
控制子容器法 方法是只显示其中一个子元素,其它隐藏,滑屏时隐藏当前元素,并显示当前元素的下一个同辈元素~ 这里采用fullPage框架,库大小7.69K~ fullPage框架的页面样式无需自定义,已 ...
- solr多条件查询(四)
上面讲到比较烦琐,如果这个不好理解,可以直接用sorl的多条件过滤addFilterQuery();方法
- NOSDK--一键打包的实现(四)
1.4 打包及签名的脚本介绍 我们使用ant来实现打包,这节我们先介绍脚本内容,关于脚本环境配置问题,我们将在下节做一个详细的介绍. 首先我们来看下build_android/tools/platfo ...
- ASP.NET 实现登陆验证
public class ValidModule : IHttpModule { /// <summary> /// 您将需要在网站的 Web.config 文件中配置此模块 /// 并向 ...
- PhpStorm 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项
第一步:配置 git.exe File -> Default Settings -> Version Control -> Git -> Path go Git executa ...
- PHP导出数据到CSV文件函数 csv_export()
后台往往需要导出各种数据到 Excel文档中.通常我们是导出 .csv文件格式,PHP导出函数参考代码如下: /** * 导出数据到CSV文件 * * @param array $data 二维数组( ...
- awk 双引号vs单引号
centos下面, awk '{...}' 和 awk "{...}" 差别是很大的: [ywt@YuWentao]$ echo "a b c d 1 2 3 4&quo ...
- centos6.3安装python2.7, pip2.7, mysql
参考: https://github.com/h2oai/h2o-2/wiki/Installing-python-2.7-on-centos-6.3.-Follow-this-sequence-ex ...
- Redis学习笔记8--Redis发布/订阅
发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似.pub /sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者 ...