📜  sed 多个文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:34:54.125000             🧑  作者: Mango

使用sed将多个文件批量编辑

在Shell-Bash中,sed是一个非常强大的文本编辑工具。它可以对文本文件进行批量替换、删除、插入等操作。本篇文章将介绍如何使用sed来批量编辑多个文件。

基本用法
sed 's/old/new/g' file.txt

上面的命令用于将file.txt文件中的所有出现old字符串替换为new字符串。其中,'s/'为命令指示符,'g'表示替换所有出现的字符串。sed命令不会修改原始文件,而是将修改后的结果输出到终端中。如果想要将修改后的内容保存到原始文件中,可以使用-i选项:

sed -i 's/old/new/g' file.txt
批量处理多个文件

有时候我们需要对多个文件进行批量操作,此时可以使用shell的for循环来实现。例如,要将当前目录下所有文件的old字符串替换为new字符串,可以使用以下命令:

for file in *
do
    if [ -f $file ]; then
        sed -i 's/old/new/g' $file
    fi
done

上面的代码会遍历当前目录下的每个文件,如果是普通文件,则执行sed命令进行替换操作。

处理指定后缀名的文件

有时候我们只需要处理指定后缀名的文件,这时可以使用find命令结合sed命令实现。例如,要将当前目录及其子目录下所有txt文件的old字符串替换为new字符串,可以使用以下命令:

find . -name "*.txt" | xargs sed -i 's/old/new/g'

上面的代码会查找当前目录下以及其子目录下所有txt文件,并将其传递给xargs命令。xargs命令会将文件名作为参数传递给sed命令,从而实现批量替换的操作。

总结

在Shell-Bash中,使用sed命令进行批量文本编辑非常方便。本文介绍了sed命令的基本用法以及如何批量处理多个文件和指定后缀名的文件。希望读者可以通过本文学习到更加高效的文本编辑技巧。