Похоже, это просто:
pcregrep -Mn '.\nFrom ' myfile
Вы также можете предварительно -обработать фальшивый mbox с помощью formail -es
, что добавит недостающие строки.
[[
ведет себя так, как задумано, потому что $var==bar
на самом деле не является условным выражением, сравнивающим две строки, а представляет собой одну строку (, которая содержит два знака равенства ). Поскольку [[... ]]
содержит только строку, а не условное выражение, по умолчанию используется флаг -n
для проверки того, не является ли строка нулевой длины -и, таким образом, оценивается с кодом выхода 0
. Однако это не то, что вы хотели, поэтому, если вы хотите оценить, равно ли $var значению bar, используйте пробелы вокруг оператора ==
, чтобы превратить его в условное выражение:
[[ $var == bar ]]
Из справочной страницы условных выражений:
string1 == string2
string1 = string2
True if the strings are equal. When used with the [[ command, this performs pattern matching as described above (see Conditional Constructs).
‘=’ should be used with the test command for POSIX conformance.