Мой каталог содержит сотни файлов и каталогов, подобных этому:
508471/
ae_lstm__ts_ 508471_detected_anomalies.pdf
ae_lstm__508471_prediction_result.pdf
mlp_508471_prediction_result.pdf
mlp__ts_508471_detected_anomalies.pdf
vanilla_lstm_508471_prediction_result.pdf
vanilla_lstm_ts_508471_detected_anomalies.pdf
598690/
ae_lstm__ts_598690_detected_anomalies.pdf
ae_lstm__598690_prediction_result.pdf
mlp_598690_prediction_result.pdf
mlp__ts_598690_detected_anomalies.pdf
vanilla_lstm_598690_prediction_result.pdf
vanilla_lstm_ts_598690_detected_anomalies.pdf
Существуют папки, имена которых имеют идентификационный номер, например 508471 и 598690.
По тому же пути, что и эти папки, находятся pdf
файлы, в названии которых указан этот идентификационный номер. Мне нужно переместить все pdf
файлы с одинаковым идентификатором в их имени в соответствующие каталоги.
Я пробовал следующий сценарий оболочки, но он ничего не делает. Что я делаю не так?
Я пытаюсь перебрать все каталоги, найти файлы, в имени которых есть id
, и переместить их в тот же каталог:
for f in ls -d */; do
id=${f%?} # f value is '598690/', I'm removing the last character, `\`, to get only the id part
find . -maxdepth 1 -type f -iname *.pdf -exec grep $id {} \; -exec mv -i {} $f \;
done