文本处理

文本处理

我在根文件夹下有几个名为 folder1、folder2 等的文件夹。每个文件夹中都有许多 xml 文件。每个 xml 文件中都有许多文本模式(在 folder1 下)folder1.xxx、folder1.yyy。我想用 xxx 替换所有 folder1.xxx,用 yyy 替换所有 folder2.yyy。我知道首先我需要获取所有文件夹列表并处理每个文件夹下的每个文件并相应地替换文本。我使用 Ubuntu Linux 发行版,我尝试过 sed 但没有成功。您能否向我展示一种快速执行此操作的方法,无论是 perl、bash 还是任何其他脚本。谢谢

答案1

(根据您的评论进行编辑):

for dir in folder1 folder2; do
  sed -i "s/$dir\.//" $dir/*
done

它将对您列出的每个目录(位folder1 folder2)执行一个简单的“流编辑”(sed),对该目录中的每个文件进行搜索,然后搜索目录名后跟一个点,并将其替换为空。

答案2

如果你安装了 mmv,你可以尝试类似

for dir in *; do
    mmv "$dir/$dir*" "$1";
done

mmv 应该是大多数发行版的一部分,但在某些情况下默认情况下不会安装。我不确定它是否在 Ubuntu 中。

相关内容