实现数据库批量更新与回滚

create database awktest;

use awktest

create table user(
    id int unsigned not null unique auto_increment primary key,
    name varchar(40) not null,
    value int unsigned not null
)ENGINE=InnoDB DEFAULT CHARSET=utf8 comment='user表';

insert into user(id, name, value) values  ('1','xiao1','18'),
('2','xiao2','19'),
('3','xiao3','20'),
('4','xiao4','21');

exit

mysql -uroot -p -e 'use awktest;select * from user;' > datadump.txt

nl datadump.txt | sed '1d' | awk -F ' ' '{printf ("update user set value = 0 where name = \047%s\047;\n", $3)}' > sql.txt

nl datadump.txt | sed '1d' | awk -F ' ' '{printf ("update user set value = %s where name = \047%s\047;\n",$4,$3)}' > rollback.txt

db -Dawktest < ~/sql.txt
db -Dawktest < ~/rollback.txt

其中sql.txt:

update user set value = 0 where name = 'xiao1';
update user set value = 0 where name = 'xiao2';
update user set value = 0 where name = 'xiao3';
update user set value = 0 where name = 'xiao4';

rollback.txt:

update user set value = 18 where name = 'xiao1';
update user set value = 19 where name = 'xiao2';
update user set value = 20 where name = 'xiao3';
update user set value = 21 where name = 'xiao4';

sed awk 小例的更多相关文章

  1. sed awk 样例

    sed [options] '[action]' filename options: -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选项,则只会把经过sed命令处理的行输出到屏幕. -e:允 ...

  2. linux 命令小例

    xargs示例: ls |xargs -i mv {}  /opt find示例: find -mtime +n -name “*.avi” -type f -exec rm {} \; find - ...

  3. Sed&awk笔记之sed篇

    http://blog.csdn.net/a81895898/article/details/8482387 Sed是什么 <sed and awk>一书中(1.2 A Stream Ed ...

  4. Sed&awk笔记之sed篇(转)

    Sed是什么 <sed and awk>一书中(1.2 A Stream Editor)是这样解释的: Sed is a "non-interactive" strea ...

  5. Sed文本替换一例

    使用 Sed 完成文本替换操作任务是非常合适的. 现在, 假设我要将一个原有 Java 项目中的一些包及下面的类移到另一个项目中复用. Project javastudy: Packages: alg ...

  6. [svc]linux正则实战(grep/sed/awk)

    企业实战: 过滤ip 过滤出第二行的 192.168.2.11. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ine ...

  7. Linux三剑客grep/sed/awk

    grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color ...

  8. Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例

    Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例 一.在Eclipse下编译安装Hadoop插件 Hadoop的Eclipse插件现在已经没有二进制版直接提供,只能自己编译. ...

  9. linux sed awk seq 正则使用 截取字符 之技巧

    [root@room9pc01 ~]# seq 5 1 2 3 4 5 [root@room9pc01 ~]# seq 2 5 2 3 4 5 seq 1 2 10 1 3 5 7 9 [root@d ...

随机推荐

  1. 利用H5新特性判断文件大小

    HTML代码部分: 思路:下面代码中我利用css的z-index属性将input="file”标签隐藏在了id=btnSelect元素下面,通过触发a标签的点击后,弹出文件选择框.下面的ma ...

  2. scroll、client和offset的区别

    scroll.client和offset的区别:http://www.cnblogs.com/pcd12321/p/4448420.html

  3. visual studio 目录

    可执行文件目录:搜索可执行文件时使用的路径.与环境变量PATH相对应.包含目录            :搜索包含文件时使用的路径.与INCLUDE相对应:引用目录            :搜索通过#U ...

  4. Java IO 节点流 FileInput/OutputStream

    Java IO 节点流 FileInput/OutputStream @author ixenos 节点流之 文件流 文件读写是最常见的I/O操作,通过文件流来连接磁盘文件,读写文件内容 1.文件的读 ...

  5. Java 反射 Class类

    Java 反射 Class类 @author ixenos 摘要:Class类在反射中的地位.构造Class对象的三种方式.Class对象构造对应类型对象的三种方式 Class类在反射中的地位 位于j ...

  6. Implementing a builder: Combine

    原文地址:点击这里 本篇我们继续讨论从一个使用Combine方法的computation expression中返回多值. 前面的故事 到现在为止,我们的表达式建造(builder)类如下 type ...

  7. 2、为Eclipse绑定Tomcat

    1.window→preferences打开属性窗口 2.点击add 3.点击Tomcat6.0 点击next 4.选择tomcat的解压目录和jdk,并点击finish 5.点击ok 6.打开ser ...

  8. 丢掉鼠标-Mac神软Alfred使用手册

    上篇: http://wellsnake.com/jekyll/update/2014/06/15/001/?utm_source=tuicool 下篇: http://wellsnake.com/j ...

  9. C# 语言规范_版本5.0 (第2章 词法结构)

    1. 词法结构 1.1 程序 C# 程序 (program) 由一个或多个源文件 (source file) 组成,源文件的正式名称是编译单元 (compilation unit)(第 9.1 节). ...

  10. java虚拟机存储区

    方法区和堆区是数据共享区. 栈区:数据不共享.方法参数.局部变量.参与运算的中间结果.返回值等等都在栈区中. 堆区:数据共享.存放对象. 方法区存放类型信息,类型信息包括:字段信息.方法信息.该类型的 ...