Мой каталог содержит несколько сотен файлов и каталогов, подобных этому:
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
с одинаковыми именами в их именах в соответствующие каталоги.
Я пробовал следующий сценарий оболочки, но он ничего не делает. Что я делаю не так?
Я пытаюсь l oop по всем каталогам, найти файлы с 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