файловая система требует ручного fsck при загрузке

Вы можете использовать расширение параметра , чтобы удалить родительские каталоги Refи Data, включая /, и удалить суффикс .bedиз имени файла.

  • ${varname##*/}удалить самый большой шаблон префикса, чтобы удалить родительский путь
  • ${varname%.bed}удалить наименьший шаблон суффикса, чтобы удалить расширение файла .bed
for fileref in Ref/*.bed; do
    fref=${fileref##*/}
    fref=${fref%.bed}
    for filename in Data/*.bed; do
        fname=${filename##*/}
        fname=${fname%.bed}
        bedops -e 1 "$fileref" "$filename" > "${fref}${fname}.out"
    done
done

То же самое можно сделать с помощью команды basename, которая печатает имя файла по заданному пути и, при необходимости, удаляет суффикс:

for fileref in Ref/*.bed; do
    for filename in Data/*.bed; do
        bedops -e 1 "$fileref" "$filename" > "$(basename "$fileref" ".bed")$(basename "$filename" ".bed").out"
    done
done

0
24.08.2021, 10:55
0 ответов

Теги

Похожие вопросы