Linux批量替换文件内容和替换文件夹的命令

时间:2021-10-15 16:12:28

Linux 系统中经常会遇到批量替换文件内容的命令,有如下几个场景

1、批量替换文件夹内文件的内容。

    配合sed 和 grep两个命令使用。 

    1.1 在一个文件中替换字符串的命令。

    sed -i "s/beijing/shanghai/g" tmp.log

    1.2 在一个目录下,批量查找文件neirong

grep "beijing" -rl yourDir

    1.3 批量替换文件夹内文件内容。

sed -i "s/beijing/shanghai/g" `grep "beijing" -rl yourDir`

2、批量替换文件名、文件夹的命令。

    配合sed 和 find 命令一起使用。

    2.1 find 查找文件名和文件夹

find ./ -name beijing* // 查找当前目录下的以beijing开头的文件名。
find ./ -name beijing* -type d //查找当前目录下以beijing开头的文件夹。

    2.2 sed 用于替换输出。

sed 's/beijing/shanghai/' test.log //文件中查找内容。
find ./ -name beijing*|sed 's/\(.*\)\(beijing\)\(.*\)/mv \1\2\3 \shanghai\3/'|sh //文件夹查找文件,并将文件名转化为 mv srcFile newFile 模式,最后应用管道命令。
find ./ -name beijing* -type d |sed 's/\(.*\)\(beijing\)\(.*\)/mv \1\2\3 \1shanghai\3/'|sh