linux - 将编号的文件列表插入另一个编号文件列表的中间


2

我有一个包含文件的文件夹(apple)

doc001.jpg
doc002.jpg
...
doc010.jpg, 

另一个文件夹(banana)也包含文件

doc001.jpg   
...
doc150.jpg  

在重命名苹果时,如何将苹果的内容插入香蕉?从而使香蕉文件夹有它存在的文件达doc050.jpg

apple/doc001.jpg

banana/doc051.jpg 

然后,banana/doc051.jpg通过以前banana/doc150.jpg重命名banana/doc060.jpg通过banana/doc160.jpg

Answers:


2

这不是最优雅的解决方案,但它很容易理解,应该工作:

  1. 制作一个新的香蕉文件夹

    mkdir banana.new
    
  2. 复制前50个文件(由于领先的0s ,这比它需要的稍微硬一些):

    for i in {1..9}; do cp banana/doc00$i.jpg banana.new/; done
    for i in {10..50}; do cp banana/doc0$i.jpg banana.new/; done
    
  3. 获取apple的文件并重命名

    i=51; find apple/ -type f | sort | \
      while read n; do cp $n banana.new/doc0$i.jpg; let i++; done 
    
  4. 获取banana的其余文件并重命名

    for i in {51..89}; do \
      let n=$i+10; cp banana/doc0$i.jpg banana.new/doc0$n.jpg; done
    for i in {90..99}; do \
     let n=$i+10; echo "cp banana/doc0$i.jpg banana.new/doc$n.jpg"; done
    for i in {100..150}; do \
     let n=$i+10; cp banana/doc$i.jpg banana.new/doc$n.jpg; done
    

此时,banana.new应该完全按照您的意愿。确保它是,然后重命名为banana

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.