如何使用shell复制和重命名多个文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用shell复制和重命名多个文件相关的知识,希望对你有一定的参考价值。
我想只将20180721
文件从Outgoing
复制到Incoming
文件夹。我还想从文件名中删除第一个数字,并希望从-1重命名为-3。我想将命令保持在最低限度,所以我在下面使用pax
命令。
文件名:
216118105741_MOM-09330-20180721_102408-1.jar
预期产量:
MOM-09330-20180721_102408-3.jar
我已经尝试过这个命令,除了删除文件名前面的数字之外,它还完成了大部分工作。有人可以帮忙吗?
使用的命令:
pax -rw -pe -s/-1/-3/ ./*20180721*.jar ../Incoming/
答案
使用parameter expansion尝试这个简单的脚本:
for file in *20180721*.jar; do
new=${file#*_}
cp -- "$file" "/path/to/destination/${new%-*}-3.jar"
done
另一答案
你可以试试这个
一般来说
for i in `ls files-to-copy-*`; do
cp $i `echo $i | sed "s/rename-from/rename-to/g"`;
done;
在你的情况下
for i in `ls *_MOM*`; do
cp $i `echo $i | sed "s/_MOM/MOM/g" | sed "s/-1/-3/g"`;
done;
以上是关于如何使用shell复制和重命名多个文件的主要内容,如果未能解决你的问题,请参考以下文章