NR
означает «номер записи» и относится к строке, переданной в awk
. (По умолчанию каждая новая непустая строка является новой записью. Можно определить другой разделитель записей RS
. Тогда термин line
здесь уже не подходит.)
NF
означает «количество полей» и относится к количеству столбцов в строке. Из-за $
перед NF
мы запрашиваем значение в последнем столбце. (NB :По умолчанию любой набор пробелов или табуляций используется в качестве разделителя столбцов или разделителя полейFS
)
||
означает «или».
Таким образом, ваша команда распечатает первую строку в PGC2.SCZ.1.dat
и все строки, где значение в последнем столбце меньше 0,05/1783.
Но перед тем, как вы начнете сопоставлять, вы должны иметь пространство многострочного шаблона --, что может произойти только с командами 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:
Рабочий:
Обратите внимание, поскольку здесь не использовались регулярные выражения в стиле perl,поэтому нет необходимости в опции -R. Но пространство шаблонов является многострочным, поскольку мы считываем все данные в пространство шаблонов. Это означает, что теперь вы можете экспериментировать с регулярными выражениями в стиле Perl в этом пространстве шаблонов.