我想根据文件名替换多个文件中的常量字符串。
示例: 在目录中,我有许多文件名为“ X-A01”,“ X-B01”,“ X-C01”。 每个文件中都有一个字符串“ SS-S01”。 我想将第一个文件中的字符串“ SS-S01”替换为“ X-A01”,第二个文件替换为“ X-B01”,第三个文件替换为“ X-C01”。
请帮助我,因为我有成百上千个这样的文件,并且不想手动编辑所有文件,所以我们该怎么做。
答案 0 :(得分:1)
请记住在运行此命令之前备份文件(!),因为我自己实际上还没有尝试过:
您可以执行以下操作:
for file in <DIR>/*; do sed -i "s/SS-S01/${file##*/}/" "$file"; done
这将循环<DIR>
中的每个文件,并为每次循环迭代将文件名分配给$ file。对于每个文件,sed都会用文件名替换该文件中第一次出现的SS-S01。