Я обычно использую этот:yw для восстановления foo
, затем удаляю bar
с помощью dw и в качестве последнего шага помещаю foo
из регистра 0
, который содержит вытащил текст, используя "0p . Повторите ввод с точкой (.)по мере необходимости.
Кроме того, вместо yw и dw вы можете использовать yiw и diw(обратите внимание на дополнительный i-] это означает внутри). При этом вы можете выдергивать или удалять слово из любого места внутри него , а не только в начале слова.
Вы должны иметь возможность перебирать каталоги и удалять префикс gene
из имени текущего каталога, чтобы использовать его в качестве префикса для имени целевого файла:
for d in gene*; do
echo cp "$d/protein.fasta" "output/${d#gene}_protein.fasta"
done
Удалите echo
, как только убедитесь, что он работает правильно.
Я думаю, может быть, вы хотите использовать basename
, чтобы удалить каталог из имени файла?
i=1
for f in **/test.file; do
cp "${f}" "out/${i}_$(basename $f)"
(( i += 1 ))
done