事情是这样的

有个群友想要将手机上四百个文件里面的Kane改成kan,群里一直没人回答,我只好现学现卖,给他来一段代码

废话不多说,上代码

1
2
3
4
5
6
7
8
9
10
11
for file in `ls`
do
if [ "${file}" != "${0##*/}" ]#跳过自己
then
if [ ! -d $file ]#如果该项是文件夹就跳过
then
sed -i "s/Kane/kan/g" ${file}#执行修改
echo "已替换$file"
fi
fi
done

将上面的代码写入到.sh文件中,移动到要处理的文件目录下

执行,当前目录下的所有文件都会执行更改

搞定?

关键分析

这一句sed -i "s/Kane/kan/g" ${file}就是核心

摘自runoob:

Linux sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

详细解释可以在上面的链接找到

-i 参数用以直接将替换后的文本保存到文件中

"s/[要替换的文本]/[替换后的文本]": 字符串中的s表示为替换,此外还有a,c,d等其他指令,

sed默认只替换一次匹配的文本,加上/g就可以替换掉所有匹配的文本