欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


B计划数据恢复软件恢复格式化压缩文件教程
CentOS 6误删除的boot分区该如何还原恢复
B计划数据恢复软件恢复格式化音乐文件
天易成上网行为管理软件使用教程
虾米音乐免费领2个月vip
迅雷0976不能激活怎么办?
阿里旺旺怎么加好友?
Linux使用SecureCRT上传和下载文件教程
天易成上网行为管理软件部署模式优缺点分析
浩方电竞对战平台常见问题
linux从指定ID批量替换sql文件中记录的方法
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   当数据库中的某个字段(例如ID)是整型,那么当新插入数据的时候需要从目前已有的数据库总最大的值加1开始排列。

  当前生产数据库的id最大值为150,那么上线时候需要从151开始编号,当然可以使用sequence自增是一种方式。

  这里介绍的是手动修改sql,保存如下内容到online.sql中

  insert into ct values(1, 'sss', 2, 4);

  insert into ct values(1, 'sss', 2, 4);

  insert into ct values(1, 'sss', 2, 4);

  insert into ct values(1, 'sss', 2, 4);

  insert into ct values(1, 'sss', 2, 4);

  insert into ct values(1, 'sss', 2, 4);

  insert into ct values(1, 'sss', 2, 4);

  使用vim打开文件

  命令模式下执行如下命令就可以搞定

  :let n=151 | g/values(zsd+/s//=n/|let n+=1

  以下是详细的解释:

  这条命令各个组成元素:

  let 为变量赋值 (:help let )

  | 用来分隔不同的命令 (:help :bar )

  g 在匹配后面模式的行中执行指定的ex命令 (:help :g )

  zs 指明匹配由此开始 (:help /zs )

  d+ 查找1个或多个数字 (:help /d )

  s 在选中的区域中进行替换 (:help :s )

  = 指明后面是一个表达式 (:help :s= )

  所以,这条命令的执行过程为:

  给变量n赋值为0;

  查找模式"values(zsd+",使用变量n的值替换匹配的模式字符串;

  给变量n加1;

  回第二步;

  补充一下知识点:

  方法1:

  这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个 pom.xml文件,更郁闷的是在很多pom.xml文件里都单独指定了资源库的url,我需要把这些资源库的url统一指定到nexus本地中央库.

  手 工一个个改文件配置有点不太实际,所以google了一下,找到批量替换文件内容的好方法,命令结构如下:

  find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'下面这个例子就是将当前目录及所有子目录下的所有pom.xml文件中的”http://repo1.maven.org/maven2“ 替换为”http://localhost:8081/nexus/content/groups/public“.

  find -name 'pom.xml' | xargs perl -pi -e 's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content /groups/public|g'这里用到了Perl语言,

  perl -pi -e 在Perl 命令中加上-e 选项,后跟一行代码,那它就会像运行一个普通的Perl 脚本那样运行该代码.

  从命令行中使用Perl 能够帮助实现一些强大的、实时的转换。认真研究正则表达式,并正确地使用,将会为您省去大量的手工编辑工作。

  find -name 'pom.xml' | xargs perl -pi -e 's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content/groups/public|g'

  方法2:

  Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。

  用sed命令可以批量替换多个文件中的 字符串。

  sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`

  例如:我要把mahuinan替换 为huinanma,执行命令:

  sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www'

  这是目前linux最简单的批量替换字符串命令了!

  具体格式如下:

  sed -i "s/oldString/newString/g" `grep oldString -rl /path`

  实例代码:sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl /usr/aa`

  sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl ./`

  方法3:

  在日程的开发过程中,可能大家会遇到将某个变量名修改 为另一个变量名的情况,如果这个变量是一个局部变量的话,vi足以胜任,但是如果是某个全局变量的话,并且在很多文件中进行了使用,这个时候使用vi就是 一个不明智的选择。这里给出一个简单的shell命令,可以一次性将所有文件中的指定字符串进行修改:

  grep "abc" * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/abc/abcde/g'

  补充说明:

  sed -i "s/oldString/newString/g" `grep oldString -rl /path`

  对多个文件的处理可能不支持,需要用 xargs, 搞定。

  变种如下:

  grep oldString -rl /path | xargs sed -i "s/oldString/newString/g"

  注意:

  在 `grep oldString -rl /path` 中 ` 为1前边的翻引号`,而不是enter 前的 '

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站