微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 将所有具有特定扩展名的文件复制到另一个目录,同时更改扩展名

我想将扩展名为aaa的所有文件从目录a复制到目录b,将扩展名替换为bbb.我试着这样做:

ls a | grep \.bla$| cut --delimiter=. -f 1 | xargs cp a/{}.aaa b/{}.bbb

但它确实关闭了.我想要一个oneliner,而不是一个bash脚本.

解决方法:

我认为你让这个问题有点过于复杂,如果目标目录是空的,你可以使用以下一行代码

cp a/*.aaa b; rename 's/aaa$/bbb/' b/*.aaa

该脚本使用两个命令;之间执行第二个之后的第二个.

cp a/*.aaa b

将具有模式a / * .aaa的所有文件复制到b目录.通过单次调用执行此操作,该命令也将比使用管道更有效.

一个重命名一个实用工具,用于对文件名执行正则表达式查找和替换.通过指定b / * .aaa,您将使用* .aaa正则表达式重命名b中的所有文件.现在你只需要指定要替换的内容,这是使用正则表达式完成的:

s/aaa$/bbb/

aaa $表示最后三个字符必须是aaa,并用每个文件的bbb替换它们.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐