Циклический просмотр двух наборов файлов в оболочке bash

Xborra al revés. Mientras que :normentraría en modo normal al comienzo de cada línea coincidente. Así que querrías xen 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
2
29.06.2019, 04:02
2 ответа

Два способа, в зависимости от того, хотите ли вы заботиться об общем количестве файлов.

В первом случае вы знаете, что количество файлов равно 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».

3
27.01.2020, 21:55

Вы можете просто использоватьxargs:

echo /Data/*_r[12].txt | xargs -n 2 the-command
2
27.01.2020, 21:55

Теги

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