linux 下批替换字符串和更改文件名

1,替换所有符合条件的字符串

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

比如命令:

sed -i "s/oldstring/newstring/g" `grep oldstring test/ -rl`

1.2 替换指定文件的字符串

sed -i 's/原字符串/新字符串/g' `find . -name 符合条件的文件`

2,批量更改文件名:

 rename $1 $2 $3  

$1: 要被取代的关键字  

$2: 新的关键字  

$3: 档名符合这个规则的才取代  

rename 原字符 新字符 *原字符*

rename oldstring newstring *oldstring*

批量更改符合条件的文件名:  rename oldstring newstring `find . -name "*oldstring*"`

2.1 脚本fangsh

#!/bin/sh

for shname in `find 目录/ -name "*oldstring*"`
do
  newname=`echo ${shname//oldstring/newstring}`          
  echo "rename [${shname}]--->[${newname}]"
  mv ${shname} ${newname}
done

猜你喜欢

转载自blog.csdn.net/chengf223/article/details/81946458