скопировать файл из нескольких каталогов и добавить числа в префикс каждого файла?

Я обычно использую этот:yw для восстановления foo, затем удаляю barс помощью dw и в качестве последнего шага помещаю fooиз регистра 0, который содержит вытащил текст, используя "0p . Повторите ввод с точкой (.)по мере необходимости.

Кроме того, вместо yw и dw вы можете использовать yiw и diw(обратите внимание на дополнительный i-] это означает внутри). При этом вы можете выдергивать или удалять слово из любого места внутри него , а не только в начале слова.

2
27.12.2019, 17:39
2 ответа

Вы должны иметь возможность перебирать каталоги и удалять префикс geneиз имени текущего каталога, чтобы использовать его в качестве префикса для имени целевого файла:

for d in gene*; do 
  echo cp "$d/protein.fasta" "output/${d#gene}_protein.fasta"
done 

Удалите echo, как только убедитесь, что он работает правильно.

4
27.01.2020, 21:58

Я думаю, может быть, вы хотите использовать basename, чтобы удалить каталог из имени файла?

i=1
for f in **/test.file; do
  cp "${f}" "out/${i}_$(basename $f)"
  (( i += 1 ))
done
1
27.01.2020, 21:58

Теги

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