用于删除具有相同文件名但不同文件扩展名的重复文件的Unix Shell脚本
我是Unix shell脚本的新手。掌握了命令的基本知识,并尝试编写我的第一个脚本。 问题是:我有一个包含大量PDF和DOC文件的归档文件夹。其中很多都有PDF和DOC版本,例如hello.DOC和hello.PDF。我想删除这些文件名相同的“副本”的所有pdf版本,不管实际文件内容是否相同。 在过去的一周里,我试图寻找一些解决方案,但通常我只找到基于文件内容的解决方案用于删除具有相同文件名但不同文件扩展名的重复文件的Unix Shell脚本,shell,unix,pdf,doc,Shell,Unix,Pdf,Doc,我是Unix shell脚本的新手。掌握了命令的基本知识,并尝试编写我的第一个脚本。 问题是:我有一个包含大量PDF和DOC文件的归档文件夹。其中很多都有PDF和DOC版本,例如hello.DOC和hello.PDF。我想删除这些文件名相同的“副本”的所有pdf版本,不管实际文件内容是否相同。 在过去的一周里,我试图寻找一些解决方案,但通常我只找到基于文件内容的解决方案 非常感谢您的帮助。您可以尝试以下方法: for i in *.doc; do pdffile=$(echo "$i"|se
非常感谢您的帮助。您可以尝试以下方法:
for i in *.doc; do
pdffile=$(echo "$i"|sed 's/\.doc/\.pdf/')
if [[ -f "$pdffile" ]]; then
rm "$pdffile"
fi
done
其作用是:对于当前目录中的每个文档文件,都有一个名称相同但带有pdf的文件,然后删除该pdf文件。欢迎使用StackOverflow!请看一下上的指南,特别感谢您的及时回复。我为我的“无礼”道歉。我知道“I”是一个变量,但我还是需要先声明它,还是可以按原样实现代码?@PeterS您可以按原样运行代码,
I
在for
语句中声明。我尝试过,但总是得到相同的错误:::rm:无法删除“Pdfile”:没有这样的文件或目录您复制得好吗?=>rm“$Pdfile”不是rm“Pdfile”非常感谢,你是对的,我忘了添加$,它正在工作!