Esc[линия;колонкаH Позиция курсора:[116301] Esc[Line;Columnf Перемещает курсор на указанную позицию (координаты). Если нет [116302] укажите позицию, курсор переместится в исходную позицию в левом верхнем углу [116303]. угол экрана (строка 0, колонка 0).
Esc[2J Стереть дисплей: [116304] Очищает экран и перемещает курсор в исходную позицию [116305] (строка 0, столбец 0).
Возможно, это легче понять на выходе [116131]od -c[116132]:033[116134] это [116135]Esc[116136], поэтому на выходе выше просто [116137]Esc[H[116138], а затем [116139]Esc[2J[116140].[115770].
Тестовые данные:
$ cat data
case1: my test is (HELLO) with some numbers (A1, A2, A3, A4)
case2: my test is (HELLO) with some numbers (A1[10:3], A2, A3, A4)
case3: replaceit(something(HELLO)) sometext (single_bit_here, somedatahere[4], something, something,something,something) ;
Сценарий Perl:
#!/usr/bin/perl
use strict;
use warnings;
while (<>) {
my $n = 1;
$n = 1 + $1 - $2 if (/\([^\,)]*\[(\d+)(?::(\d+))?[^\)]*\)[^\)]*$/);
s/HELLO/$n/;
print;
}
Вывод:
$ ./the-script.pl < data
case1: my test is (1) with some numbers (A1, A2, A3, A4)
case2: my test is (8) with some numbers (A1[10:3], A2, A3, A4)
case3: replaceit(something(1)) sometext (single_bit_here, somedatahere[4], something, something,something,something) ;