gpt4 book ai didi

regex - 删除重复的文件扩展名

转载 作者:太空狗 更新时间:2023-10-29 11:44:56 25 4
gpt4 key购买 nike

我有数千个文件,名称类似于 filename.gz.gz.gz.gz.gz.gz.gz.gz.gz.gz.gz

我正在使用这样的查找命令 find 。 -name "*.gz*" 找到这些文件,然后使用 -exec 或通过管道传输到 xargs 并使用一些神奇的命令来清理这些困惑,这样我就得到了文件名。 z

请有人帮我想出这个神奇的命令,可以删除不需要的 .gz 实例。我曾尝试使用 sed 's/\.gz//'sed 's/(\.gz)//' 但它们似乎不起作用(或者说实话,我对 sed 不是很熟悉)。顺便说一句,我不必使用 sed,欢迎任何有助于解决此问题的解决方案:-)

最佳答案

使用 find 和 awk 的一种方法:

find $(pwd) -name '*.gz'|awk '{n=$0;sub(/(\.gz)+$/,".gz",n);print "mv",$0,n}'|sh 

注意:

  • 我假设您的文件名中没有特殊字符(如空格...)。如果有,你需要在 mv 命令中引用文件名。
  • 我添加了一个 $(pwd) 来获取找到的名称的绝对路径。
  • 您可以删除结尾的 |sh 以检查生成的 mv ... .... cmd,如果它是正确的。
  • 如果一切正常,添加 |sh 来执行 mv

看这里的例子:

enter image description here

关于regex - 删除重复的文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22287529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com