У меня есть большой набор рабочих файлов вида a.mp4 b.txt c.avi d.doc и т. Д. (Расширение не имеет отношения к вопросу). У меня также есть набор файлов, которые включают в себя файлы с одинаковыми именами, за исключением общего префикса «broken_», например broken_a.mp4, broken_b.txt
Если у меня есть a.mp4 и broken_a.mp4, я хочупереместить broken_a.mp4 в каталог хранения. Если у меня есть broken_d.mp4, но нет соответствующего d.mp4, оставьте его в покое.
У меня есть некоторый код, успешно используемый для идентификации и перемещения файлов с тем же расширением, которое я хотел бы изменить
Это форма рабочего примера кода для файлов с теми же расширениями (спасибоавтор, который я хотел бы изменить, если это возможно, чтобы выполнить эту работу
#!/bin/bash
# Name of source directory
SOURCE_DIR=.
# Name of destination directory
DEST_DIR=already_converted_m4v
# Create the destination directory for the moved files, if it doesn't already exist.
[ ! -d $DEST_DIR ] && mkdir -p $DEST_DIR
find $SOURCE_DIR -maxdepth 1 -type f -iname "*.avi" | while read fin
do
#echo "m4v doing avi"
fm4v=${fin/.avi/.m4v}
[ -f "$fm4v" ] && gmv -v --backup=numbered "$fin" $DEST_DIR/
done
Моя первая попытка сбора мусора, которая явно не работает, выглядит ужасно:
#!/bin/bash
# Name of source directory
SOURCE_DIR=.
# Name of destination directory
DEST_DIR=Already_broken
# Create the destination directory for the moved files, if it doesn't already exist.
[ ! -d $DEST_DIR ] && mkdir -p $DEST_DIR
find $SOURCE_DIR -maxdepth 1 -type f -iname "*" | while read fin
do
#echo "working to find existing broken and unbroken files"
filetest_basename=$(basename "$fin" )
filetest_extension=$(extension "$fin" )
echo $filetest_basename
echo $filetest_extension
fileok=${filetest_basename/!broken_/broken_}
[ -f "$fileok" ] && gmv -v --backup=numbered "$fin" $DEST_DIR/
done
Благодарен за помощь