-0
указывает разделитель записи (строка).Это было причиной того, что Perl получил три строки:
>echo a:b:c | perl -072 -nE"say"
a:
b:
c
Поскольку ни в одной из этих строк нет пробелов, $F[1]
будет пустым, если будет использоваться -a
.
-F
указывает входной поле разделитель.Это то, что вам нужно.
perl -F: -lanE'say $F[1];'
Или, если вы застряли с более старым Perl:
perl -F: -lane'print $F[1];'
Параметры командной строки задокументированы в perlrun .