Shell脚本-根据文件名替换目录中所有文件中的字符串



我想根据文件名替换多个文件中的常量字符串。

示例:在一个目录中,我有许多名为"X-A01"、"X-B01"one_answers"X-C01"的文件。在每个文件中都有一个字符串"SS-S01"。我想用"X-A01"替换第一个文件中的字符串"SS-S01",用"X-B01"替换第二个文件,用"X-C01"替换第三个文件。

请帮助我如何做到这一点,因为我有数百个这样的文件,不想手动逐个编辑所有文件。

在运行此命令之前,请记住备份文件(!(,因为我自己还没有尝试过:

你可以做一些类似的事情:

for file in <DIR>/*; do sed -i "s/SS-S01/${file##*/}/" "$file"; done

这将在<DIR>中的每个文件上循环,并为每个循环迭代将文件名分配给$file。对于每个文件,sed将用文件名替换该文件中第一个出现的SS-S01。

最新更新