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扩 ...
随机推荐
- [Centos 6]升级安装GCC(2)
摘要 上篇文章升级了下gcc,但发现并没有起到作用. 安装 上篇文章: 升级GCC 升级之后,检查gcc版本 strings /usr/lib/libstdc++.so. | grep GLIBCXX ...
- WindowsPhone8.1RT建立空白应用挂起没反应的解决方案
wp8.1下, 建立空白应用后遇到的问题:想要实现保存.提取数据都无法成功 在退出程序后无法进入到OnNavigatedFrom()中去. 网上说要手动的Invoke OnSuspending事件. ...
- sqlserver实现数据库读写分离介绍
对于负载均衡,笔者经常接触的当属Oracle的负载均衡机制.下面我们重点介绍Sql Server 2005是如何实现负载均衡的,感兴趣的朋友可以参考下哈 Internet的规模每一百天就会增长一倍,客 ...
- python多线程学习记录
1.多线程的创建 import threading t = t.theading.Thread(target, args--) t.SetDeamon(True)//设置为守护进程 t.start() ...
- java.lang.IllegalStateException: Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB CMT instead
java.lang.IllegalStateException: Not allowed to create transaction on sharedEntityManager - use Spri ...
- ubuntu和centos安装RRDTool——cacti前置技能
Installing Pre-Requisites Note that RRDTool 1.0.x versions included all dependancies, but 1.2.x vers ...
- fdatool 设计IIR滤波器
[B,A] = sos2tf(SOS);K = cumprod(G);k=K(end); [y_out] = filter(B, A, win_up_data, []) .*k;
- at 常用命令
以debian 6.0.1 为例: 服务开启关闭: Usage: /etc/init.d/atd {start|stop|restart|force-reload|status} 设置一次计划任务(a ...
- android 获取Datepicker日期
1.使用的Android5.0系统,实现上面效果使用了alertdialog 2.布局文件: layout_dataselect <?xml version="1.0" en ...
- 文本框value联动修改
<input id="ipt-edit" value="" /><input id="ipt-target" value= ...