X
borra al revés. Mientras que :norm
entraría en modo normal al comienzo de cada línea coincidente. Así que querrías x
en su lugar
g/test_.._../norm 10xi<^[A>
(donde ^[
es un carácter ESC real ingresado con Ctrl+VEsc).
O podrías hacerlo:
g/test_.._../norm dni<^[A>
Aquí, puede ser más fácil de usar:s
:
:%s/\v.*(test_.._..)/<\1>/
O para eliminar 10 caracteres antes de cada aparición detest_.._..
(y ajustar<...>
):
:%s/\v.{10}(test_.._..)/<\1>/g
O cualquier cosa que coincidaP<digits>;
:
:%s/\vP\d+;(test_.._..)/<\1>/g
Два способа, в зависимости от того, хотите ли вы заботиться об общем количестве файлов.
В первом случае вы знаете, что количество файлов равно 25 (, которые имеют имена от 1 до 25):
for index in {1..25}
do
command tcr"${index}"_r1.txt tcr"${index}"_r2.txt
done
Выше, оболочка (bash )расширяет {1..25}
до полного набора чисел; затем мы подставляем эти числа в соответствующие места в парных именах файлов.
Во втором случае вы не знаете и не заботитесь о том, сколько там файлов:
for first in tcr*_r1.txt
do
command "$first" "${first/_r1.txt/_r2.txt}"
done
Выше мы перебираем все файлы «r1» и заменяем часть «_r1.txt» на парную часть «_r2.txt».