Как использовать многострочный модификатор ssed (Заменить sed )?

NR означает «номер записи» и относится к строке, переданной в awk. (По умолчанию каждая новая непустая строка является новой записью. Можно определить другой разделитель записей RS. Тогда термин lineздесь уже не подходит.)

NFозначает «количество полей» и относится к количеству столбцов в строке. Из-за $перед NFмы запрашиваем значение в последнем столбце. (NB :По умолчанию любой набор пробелов или табуляций используется в качестве разделителя столбцов или разделителя полейFS)

||означает «или».

Таким образом, ваша команда распечатает первую строку в PGC2.SCZ.1.datи все строки, где значение в последнем столбце меньше 0,05/1783.

0
09.05.2021, 19:23
1 ответ

Но перед тем, как вы начнете сопоставлять, вы должны иметь пространство многострочного шаблона --, что может произойти только с командами N/G/H. Прямо сейчас пространство шаблонов представляет собой одну строку за раз.

Ssed — это не perl в обличии sed, а просто реализованные в perl возможности регулярных выражений. Что касается команды perl -0pe, вы можете попробовать, если доступна опция -z, в противном случае вы всегда можете сделать

seq 10 |
ssed -e '
  :loop
  $!{
    N
    b loop
  }
  G
  s/\n/:/g
'
1:2:3:4:5:6:7:8:9:10:

Рабочий:

  • Команда N добавляет следующую строку в пространство шаблонов.
  • В цикле мы применяем команду N, и очень скоро все строки оказываются в пространстве шаблонов, и каждая из них разделяется следующей через символ новой строки.
  • Затем, когда файл исчерпан, то есть мы достигли конца, мы заменяем каждую новую строку двоеточием.
  • Команда G добавляет пробел к пространству шаблона, что означает добавление новой строки к пространству шаблона.

Обратите внимание, поскольку здесь не использовались регулярные выражения в стиле perl,поэтому нет необходимости в опции -R. Но пространство шаблонов является многострочным, поскольку мы считываем все данные в пространство шаблонов. Это означает, что теперь вы можете экспериментировать с регулярными выражениями в стиле Perl в этом пространстве шаблонов.

2
28.07.2021, 11:33

Теги

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