У меня есть список файл в directory1, и я должен скопировать единственный файл хеша, существующий в другой directory2. Как я могу сделать это с помощью сценария? для какого-либо другого файла с нормальным именем я могу сделать это, но что относительно хеша? нам нужен парсинг, чтобы сделать это? имя файла находится в этой форме e6a0feaeh74b94f91419795647be61801b06ecec912087c14907da77f90d6e1a
Таким образом, если бы другие файлы не имеют никаких цифр, т.е. 0123456789, на имя, поскольку Вы сказали затем, что что-то вроде этого, вероятно, сделало бы то, что Вы хотите
#!/bin/bash
pattern="[0-9]"
for fn in ./* ; do
if [[ $fn =~ $pattern ]]; then
cp $fn ./directory2/
fi
done
Просто замените/directory2/корректным целевым каталогом, в который Вы хотите скопировать файл.
NB: Это - очень элементарный сценарий, это также, требует, чтобы Вы были в каталоге, при выполнении его. Это могло сделать с некоторой полировкой, поэтому изменить его, поскольку Вы должны.
Я Предположу, что Ваши имена файлов имеют 64 символа (∈ строчные буквы или цифры).
Используя Perl, Вы могли выполнить что-то вроде
perl -e 'for (grep(/^[a-z0-9]{64}$/,<*>)){`mv $_ directory2/`}'
<*>
расширьтесь для всех своих файлов,grep(/^[a-z0-9]{64}$/, ...)
выбирает 64 длинных