Linux批量替换某种类型文件中的字符串sed和grep命令使用

时间:2023-09-08 03:41:26 作者:淘小宝 综合材料 收藏本文 下载本文

【导语】“淘小宝”通过精心收集,向本站投稿了6篇Linux批量替换某种类型文件中的字符串sed和grep命令使用,下面是小编收集整理后的Linux批量替换某种类型文件中的字符串sed和grep命令使用,供大家参考借鉴,希望可以帮助到有需要的朋友。

篇1:Linux批量替换某种类型文件中的字符串sed和grep命令使用

今天在修改rpm打包的spec配置文件时,遇到一个问题就是:需要将100个左右源代码中的spec配置文件中的Release一行中的发布版本号使用宏变量%{_release}进行替换,

如果要手工修改需要修改100多次,但是使用sed和grep命令很简单:

[plain]

sed -i “s/Release:  1/Release:  %{_release}/g” 'grep Release:  1 -rl --include=“*.spec” ./'

以上的命令有待求证,暂时这么写了,明天确认一下再加以修改吧。

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 ./`

篇2:dedecms使用SQL命令批量替换指定字符串的方法

这篇文章主要为大家介绍了dedecms使用SQL命令批量替换指定字符串的方法,可以实现针对指定字符串的精确替换功能,是非常实用的技巧,需要的朋友可以参考下

几年前做的一个QQ站现在把资料整过来了,但是发现有些litpic缩略图中的路么地址不对了,以前我都是使用phpmyadmin替换,今天我发现可以直接使用SQL命令运行器来解决,下面来看我一个替换litpic中指定路径地址.

查询指定 archives 表:

代码如下:

select * from 你的表前缀_archives limit 1

这个表是主表了,我们查询一条出来看看,结果如下.

运行SQL:select * from 你的表前缀_archives where id =1466,共有1条记录,最大返回100条.

记录:1

id:1466

typeid:110

typeid2:0

sortrank:1238913636

flag:c,p

ismake:1

channel:1

arcrank:0

click:33119

money:0

title:可爱的动态nomoQQ表情图片

shorttitle:

color:

writer:

source:

litpic:upload.jb51.net/allimg/c090405/123Y13349440-1SH6.jpg

pubdate:1238913636

senddate:1238913636

现在我们可以锁定到id =1466 记录:

代码如下:

select litpic from 你的表前缀_archives where id =1466;

执行结果:

运行SQL:

代码如下:

select litpic from 你的表前缀_archives where id =1466;

共有1条记录,最大返回100条.

记录:1

litpic:upload.jb51.net/allimg/c090405/123Y13349440-1SH6.jpg

好了现在我们需要把litpic 字段中的upload.jb51.net 替换成 /uploads/ 这种,这些我们可以使用update replace来实现.

例子:

代码如下:

update 你的表前缀_archives set `litpic`=replace(litpic, ‘upload.jb51.net‘, ‘/uploads‘) WHERE id=1466

我们来执行看看结果,成功执行1个SQL语句,好现在我们来查询一下执行结果是不是我们想要的,再执行:

代码如下:

select litpic from 你的表前缀_archives where id =1466;

确定执行提示:

运行SQL:

代码如下:

select litpic from 你的表前缀_archives where id =1466;

共有1条记录,最大返回100条.

记录:1

litpic:/uploads/allimg/c090405/123Y13349440-1SH6.jpg

看提示没有错误,我们在地址栏看看图片正确,查看是没有问题了,现在我们来批量替换.

代码如下:

select litpic from 你的表前缀_archives where litpic like ‘%upload.jb51.net%‘

这样我们查一下是为了防止后面替换不会替换没有upload.jb51.net了,也防止了sql出错导致数据库全部替换掉了.

代码如下:

update 你的表前缀_archives set `litpic`=replace(litpic, ‘upload.jb51.net‘, ‘/uploads‘) where litpic like ‘%upload.jb51.net%‘

成功执行1个SQL语句,我们再查一下看.

运行SQL:

代码如下:

select litpic from 你的表前缀_archives where litpic like ‘%upload.jb51.net%‘

无返回记录!

希望本文所述对大家的dedecms建站有所帮助,

篇3:linux下perl,sed,shell批量替换文件内容linux操作系统

在linux中要替换文件里面的内容我们有三种方法可用,也就是说有三个命令它们分别为perl,sed,shell了,下面我们来看演示实例,

方法1:

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

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

find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'下面这个例子就是将当前目录及所有子目录下的所有pom.xml文件中的”www.111cn.net/phper/php.html“ 替换为”www.111cn.net“.

find -name 'pom.xml' | xargs perl -pi -e 's|www.111cn.net/phper/php.html|www.111cn.net|g'这里用到了Perl语言,

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

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

find -name 'pom.xml' | xargs perl -pi -e 's|repo1.maven.org/maven2|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 前的 '

篇4:linux下批量替换文件中的内容linux操作系统

对于单个文件,使用sed命令很容易做到,如果需要替换某个指定文件夹下所有文件,借助grep和sed组合成一条命令也可以轻松搞定。

grep命令可以查找单个文件或文件夹下文件中的内容,使用参数“r”或“-R”可以递归查找指定文件夹下的所有文件;参数“l”可以让grep输出包含指定字符串的文件名,首次匹配成功后立刻停止对同文件的查询。如果不使用“l“,grep查询单个文件时输出文件中所有包含指定字符串的行,对文件夹查询时则按照“文件名:包含字符串行”的方式输出。

有了上面提到的知识,执行批量替换的命令可以写为:

grep “netingcn” -rl /assign-path | xargs sed -i 's/netingcn/www.netingcn/g'

sed -i 's/netingcn/www.netingcn/g' `grep “netingcn” -rl /assign-path`

还有一种比较复杂的写法:

grep “netingcn” * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/netingcn/www.netingcn/g'

其中命令awk用于分割字符串、uniq对结果进行除重,

、网络上现成的资料

格式: sed -i “s/查找字段/替换字段/g” `grep 查找字段 -rl 路径`

linux sed 批量替换多个文件中的字符串

sed -i “s/oldstring/newstring/g” `grep oldstring -rl yourdir`

例如:替换/home下所有文件中的www.111cn.net为111cn.net

sed -i “s/www.111cn.net/111cn.net/g” `grep www.111cn.net -rl /home`

exp:sed -i “s/shabi/$/g” `grep shabi -rl ./`

2、自己额外附加

2.1 将文件1.txt内的文字“garden”替换成“mirGarden”

# sed -i “s/garden/mirGarden/g” 1.txt  //sed -i 很简单

2.2 将当前目录下的所有文件内的“garden”替换成“mirGarden”

## sed -i “s/garden/mirGarden/g” `ls` //其实也就是ls出多个文件名而已

篇5:Shell中使用scp命令实现文件上传代码

这篇文章主要介绍了Shell中使用scp命令实现文件上传代码,本文讲解使用scp命令实现名登录上传文件,需要的朋友可以参考下

自从法现 SSH 可以执行远端命令后,ftp 软件也渐渐很少用了,

每次更新服务器代码,都要打包、上传、登录到服务器修改文件权限、更新 Cache 等等,又慢又容易出错,所以做成脚本,一次帮我搞定,自己就点上一根烟坐在电脑面前发呆,要么就玩会儿《植物大战僵尸》啥的,悠闲!

PS: Ant 以及 Phing 用户,你们可以无视了… 我只是喜欢玩 Shell 而已。

代码如下:

#!/bin/sh

HOME=‘/cygdrive/d/public_html/myproject‘

## 先打包本地代码

## 排除如下文件: *.svn, *.bat, upload.sh, cache

## 如果需要 exclude 的文件很多,可以使用参数 --exclude-from=FILE

## 将文件一行行写入 FILE 中

cd $HOME

tar jcf tmp.tar.bz2 *  \\

--exclude=*.bat    \\

--exclude=*.bz2    \\

--exclude=*.gz     \\

--exclude=.svn     \\

--exclude=cache    \\

--exclude=upload.sh \\

## 通过 SCP 上传文件

scp tmp.tar.bz2 user@your.host.com:/home/public_html/myproject/tmp.tar.bz2

## 执行远程 ssh 命令

## 这里执行了另外一个脚本 load.sh

ssh user@your.host.com

cd /home/public_html/myproject

tar jxf tmp.tar.bz2

chown -R web:web *

chmod -R 755 *

sh load.sh

rm -f tmp.tar.bz2

## 删除本地文件

rm -f tmp.tar.bz2

echo “Everything is done.”

# 星期一 一月 11, 2010 by Verdana

# vim: set expandtab tabstop=4 shiftwidth=4:

SSH 我配置成了自动登录,可以参考这里,

篇6:Linux系统中sed命令在文件某行前后添加内容的用法

1、简介

MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的。

在linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。

2、命令格式

md5sum [OPTION]... [FILE]...

3、命令选项

-b 或 --binary :把输入文件作为二进制文件看待。

-t 或 --text :把输入的文件作为文本文件看待(默认)。

-c 或 --check :用来从文件中读取md5信息检查文件的一致性。(不细说了参见info)

--status :这个选项和check一起使用,在check的时候,不输出,而是根据返回值表示检查结果。

-w 或 --warn :在check的时候,检查输入的md5信息又没有非法的行,如果有则输出相应信息。

4、例子

(1)生产一个文件的md5值,如下图所示

(2)检查两个文件是否一样,可以通过比较两个文件的md5值。

(3)判断一个文件是否修改,通过md5来判断

[Linux系统中sed命令在文件某行前后添加内容的用法]

AutoCad菜单文件的类型,结构及其使用

linux中利用shell实现批量转换文件编码linux操作系统

python批量修改文件后缀示例代码

C++常用字符串处理函数及使用示例.net

[转载 命令]FreeBSD 文件和目录查找Unix系统

win7电脑如何使用蓝牙传输文件?

Linux系统使用cp命令报错cp:omitting directory怎么

不需要远程传输文件Linux如何关闭scp和sftp命令

告诉您如何使用WinRAR分卷压缩和分卷解压文件

Word中查找和替换功能详细介绍

Linux批量替换某种类型文件中的字符串sed和grep命令使用(合集6篇)

欢迎下载DOC格式的Linux批量替换某种类型文件中的字符串sed和grep命令使用,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档