Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于删除具有相同文件名但不同文件扩展名的重复文件的Unix Shell脚本_Shell_Unix_Pdf_Doc - Fatal编程技术网

用于删除具有相同文件名但不同文件扩展名的重复文件的Unix Shell脚本

用于删除具有相同文件名但不同文件扩展名的重复文件的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

我是Unix shell脚本的新手。掌握了命令的基本知识,并尝试编写我的第一个脚本。 问题是:我有一个包含大量PDF和DOC文件的归档文件夹。其中很多都有PDF和DOC版本,例如hello.DOC和hello.PDF。我想删除这些文件名相同的“副本”的所有pdf版本,不管实际文件内容是否相同。 在过去的一周里,我试图寻找一些解决方案,但通常我只找到基于文件内容的解决方案


非常感谢您的帮助。

您可以尝试以下方法:

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”非常感谢,你是对的,我忘了添加$,它正在工作!