Если есть следующие проблемы: у меня есть ряд файлов, которые приходят в парах (но не всегда). Есть 2400 ?????? _ 001.jpg и 2400 ?????? _ 002.jpg. Мне нужно поменять местами _001 и _002. Поэтому я подумал, что смогу сделать это:
for f in $(find -type f -name "*_002.jpg"); do mv "${f}" "${f%_002.jpg}_003.jpg"; done
for g in $(find -type f -name "*_001.jpg"); do mv "${g}" "${g%_001.jpg}_002.jpg"; done
for h in $(find -type f -name "*_003.jpg"); do mv "${h}" "${h%_003.jpg}_001.jpg"; done
Странно, что после шага 2 у меня есть * _003.jpg и * _002.jpg, которые идентичны. Что здесь происходит?
Тогда проблема становится немного сложнее: я хочу поменять местами только если оба члена пары существуют. Иногда существует только 2400 ?????? _ 001.jpg, а 2400 ?????? _ 002.jpg отсутствует. Если это так, то я хочу оставить 2400 ?????? _ 001.jpg в покое.
shell-script
swap-file
dexter
источник
источник
bash --version
#!/bin/bash
как первая строка