查找目录中的文件副本到新文件名

时间:2017-05-31 01:30:25

标签: linux unix awk sed

要复制名称中包含63的文件,将其更改为64并将其复制到同一目录中。我该怎么做。

尝试使用awk,sed不工作。

ls *63* 

例如,如果文件是test63.txt,则应将其复制到同一目录中的test64.txt。如果文件为63test.txt,则应将其复制到64text.txt

2 个答案:

答案 0 :(得分:1)

这样的事情:

for f in *63*; do newname=`echo $f | sed 's/63/64/'`; cp $f $newname; done

分为多行:

for f in *63*; do
  newname=`echo $f | sed 's/63/64/'`
  cp $f $newname
done

答案 1 :(得分:1)

一个广义的bash解决方案,其可指定的数字增加1:

n=63
for f in *"$n"*; do
  cp "$f" "${f/$n/$((n+1))}"
done