Соответствие шаблону по указанному c номеру столбца с определенной строкой. Без разделителя или разделителя - PullRequest
0 голосов
/ 04 августа 2020

Я хочу выполнить поиск в файле для вывода строк, соответствующих определенному значению в указанном c номере столбца. Здесь нет разделителя. Например:

IloveA
IloveB
IloveC
IloveA
IloveD
IloveA
Ilove A

Вывод:

IloveA
IloveA
IloveA

Здесь важно отметить, что он должен печататься, только если A присутствует в 6-м столбце.

Ответы [ 2 ]

0 голосов
/ 04 августа 2020

Насколько я понимаю, вам нужно напечатать строки, соответствующие шаблону, в диапазоне первых 5 символов, но только если символ 6 th равен A. Это можно сделать в два этапа:

  • отфильтровать строки с символом 6 th , равным A, и одновременно захватить первые 5 символов;
  • напечатайте строку, если захваченная последовательность соответствует вашему шаблону.

Ниже приведен пример реализации вышеуказанного в Perl:

perl -l -n -e 'print if /^(.{5})A/ and $1 =~ /ove/' input-file.txt

* Код 1028 * печатает следующую строку, прочитанную из файла (неявный аргумент $_), если строка соответствует /^(.{5})A/. В результате захвата , $1 (первая и единственная группа захвата) содержит первые пять символов. Затем, если $1 соответствует /ove/ (образец шаблона, который вы бы изменили), второе условие if истинно, и строка выводится на стандартный вывод.

0 голосов
/ 04 августа 2020

Используйте grep '^.....A' или, как правило, grep -E '^.{5}A'.

...