linux批量替换命令,linux文件批量替换

linux批量替换文件夹名,文件名,文件内容命令

1.用for灵活,文件名中字符替换,加日期等都可

创新互联公司从2013年开始,先为沙湾等服务建站,沙湾等地企业,进行企业商务咨询服务。为沙湾企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

先用下面语句测试一下

for

i

in

*aa*

;do

NN=$(echo

$i

|

sed

's/aa/bb/')

;echo

"$NN";done

保险起见,只拷贝

for

i

in

*aa*

;do

NN=$(echo

$i

|

sed

's/aa/bb/')

;cp

"$i"

"$NN";done

这是更名,慎用

for

i

in

*aa*

;do

NN=$(echo

$i

|

sed

's/aa/bb/')

;mv

"$i"

"$NN";done

2.用rename简洁

先用-n

开关测试

rename

-n

's/aa/bb/'

*

测试无误去掉-n进行更名

rename

's/aa/bb/'

*

Linux批量替换多个文件中字符串

linux批量替换多个文件中字符串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

./`

Linux命令之sed-替换字符串

1. sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' csv2drds-TF_B_PAYLOG_D.json

---指定文件替换,将文件中的CANCEL_TIME替换成CANCEL_RECV_TIME;

2. sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' `grep CANCEL_TIME -rl ./*TF_B_PAYLOG_D*.json`

---批量文件替换,递归查找含CANCEL_TIME的文件,将所有文件中的CANCEL_TIME替换成CANCEL_RECV_TIME;

3. sed -i 's/\/tmp\/ditagent\/TF_B_PAYLOG_D.csv/\/vdata\/datapre\/281\/'"$filename"'/g' $jsonname

---带/的字符串替换,将/tmp/ditagent/TF_B_PAYLOG_D.csv替换成/vdata/datapre/281/'"$filename"'

4. sed -i 's/^/beginstring/g' *.txt

---在所有行首添加字符串;

5.  sed -i 's/$/endstring/g' *.txt

---在所有行末添加字符串

6. sed -i '2s/原字符串/替换字符串/g' *.txt

---替换第2行

7. sed -i '$s/原字符串/替换字符串/g' *.txt

---替换最后一行

8. sed -i  '2,5s/原字符串/替换字符串/g' *.txt

---替换2到5行

9. sed -i  '2,$s/原字符串/替换字符串/g' *.txt

---替换2到最后一行

10. sed 's/\x80/|/g' test.dat |iconv -f gbk -t utf-8 testutf8.dat

---把test.dat中的欧元符号替换成竖线,再将文件gbk格式转成utf8

-i选项是直接在文件中替换,不在终端输出;

-r选项是所给的path中的目录递归查找;

-l选项是输出所有匹配到oldstring的文件;

s/表示替换

/g表示全局替换

shell :linux sed 批量替换字符串

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

命令如下:

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

例如:我要把www目录下的所有文件里的 charset=gb2312 替换为 charset=UTF-8,执行命令:

sed -i "s/charset=gb2312/charset=UTF-8/g" `grep charset=gb2312 -rl /www`

即可。

解释一下:

-i 表示inplace edit,就地修改文件

-r 表示搜索子目录

-l 表示输出匹配的文件名

这个命令组合很强大,要注意备份文件。

Linux下的shell编程 如何替换文件中的内容

shell编程中替换文件中的内容用到四个命sed,find

,grep,awk

下面是三种使用替换的方法

方法一:find

-name

'要查找的文件名'

|

xargs

perl

-pi

-e

's|被替换的字符串|替换后的字符串|g'下面这个例子就是将当前目录及所有子目录下的所有pom.xml文件中的”“

替换为”“.

find

-name

'pom.xml'

|

xargs

perl

-pi

-e

's|

/groups/public|g'这里用到了Perl语言,

perl

-pi

-e

在Perl

命令中加上-e

选项,后跟一行代码,那它就会像运行一个普通的Perl

脚本那样运行该代码.

从命令行中使用Perl

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

find

-name

'pom.xml'

|

xargs

perl

-pi

-e

's|'

方法二: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

./`

方法三:在日程的开发过程中,可能大家会遇到将某个变量名修改

为另一个变量名的情况,如果这个变量是一个局部变量的话,vi足以胜任,但是如果是某个全局变量的话,并且在很多文件中进行了使用,这个时候使用vi就是

一个不明智的选择。这里给出一个简单的shell命令,可以一次性将所有文件中的指定字符串进行修改:

grep

"abc"

*

-R

|

awk

-F:

'{print

$1}'

|

sort

|

uniq

|

xargs

sed

-i

's/abc/abcde/g'

批量替换

配置文件中的IP:

grep

"[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"

*

-R

|

awk

-F:

'{print

$1}'

|

sort

|

uniq

|

xargs

sed

-i

's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/172\.0\.0\.1/g'

Linux下批量修改文件名

Linux下修改文件名有mv和rename。 其中mv命令只能对单个文件重命名 , 这是mv命令和rename命令的在重命名方面的根本区别。

linux的rename命令有两个版本,一个是c语言版本的,一个是perl语言版本的,判断方法:

输入man rename 看到第一行是:

RENAME(1) Linux Programmer’s Manual RENAME(1)

这个就是C语言版本的

而如果出现:

RENAME(1) Perl Programmers Reference Guide RENAME(1) 则是Perl版本的了

C语言版本格式:rename 原字符串 新字符串 文件名

Perl语言版本格式:rename 's/原字符串/新字符串/' 文件名

rename支持正则表达式

例子:

字母的替换 rename "s/AA/aa/" * // 把文件名中的AA替换成aa

修改文件的后缀 rename "s//.html//.php/" * // 把.html 后缀的改成 .php后缀

批量添加文件后缀 rename "s/$//.txt/" * // 把所有的文件名都以txt结尾

批量删除文件名 rename "s//.txt//" * // 把所有以.txt结尾的文件名的.txt删掉

在文件夹shell下创建文件10个文件

touch tmp_{1..10}.txt

找到含有“_“”的文件夹。

find ./ -name "*_*"

读取id, 用mv改名,$为自己理解为赋值后的id,格式为


文章名称:linux批量替换命令,linux文件批量替换
转载源于:http://scyanting.com/article/dssiico.html