linux,sed命令批量修改文件名和文件内容

-------批量替换文件名称

for file in `ls | grep 文件名`

do

 newfile=`echo $file | sed 's/查找的字符串/想要替换的字符串/g'`

 mv $file $newfile

done

-------以下为示例批量替换文件名称,

目的想找出 文件名称带res2openserv的文件夹,然后替换成res2servopen

for file in `ls | grep res` 这句话目的是循环查找 带res2openserv的文件夹

newfile=`echo $file | sed 's/res2openserv/res2servopen/g'` 这句话是替换内容

示例:

for file in `ls | grep res2openserv`

do

 newfile=`echo $file | sed 's/res2openserv/res2servopen/g'`

 mv $file $newfile

done

----批量替换字符串

sed -i 's/查找的字符串/想要替换的字符串/' `grep 查找的字符串 -rl /查找的目录`

示例:

grep openserv -rl /unios/seacrab-1.0/config` 这句话的意思是在/unios/seacrab-1.0/config 这个目录下面,查找带openserv 的字符串

sed -i 's/openserv/servopen/' 这句话是把openserv字符串替换成servopen 

示例:

sed -i 's/openserv/servopen/' `grep openserv -rl /unios/seacrab-1.0/config`

你可能感兴趣的:(linux)