Squid не может заблокировать Facebook

С GNU sedвы можете использовать:

sed '$=;d'

Поскольку GNU sedсчитает эти дополнительные символы после последней новой строки дополнительной строкой. GNU sed, как и большинство утилит GNU, также поддерживает символы NUL в своем вводе и не имеет ограничения на длину строк (два других критерия, которые делают ввод не -текстом согласно POSIX ).

POSIXly, построение -на основе ответа @Inian для поддержки слишком -длинных строк и нулевых байтов:

LC_ALL=C tr -cs '\n' '[x*]' | awk 'END {print NR}'

Эта команда trпереводит все последовательности из одного или нескольких символов, (каждый байт интерпретируется как символ в локали C, чтобы избежать проблем с декодированием, )кроме новой строки, в одинxсимвол, поэтому Входные записи awkбудут иметь длину 0 или 1 байт, а его входные данные будут содержать только xи символы новой строки.

$ printf '%10000s\na\0b\nc\nd' | wc -l
3

$ printf '%10000s\na\0b\nc\nd' | mawk 'END{print NR}'
2
$ printf '%10000s\na\0b\nc\nd' | busybox awk 'END{print NR}'
5
$ printf '%10000s\na\0b\nc\nd' | gawk 'END{print NR}'
4

$ printf '%10000s\na\0b\nc\nd' | LC_ALL=C tr -cs '\n' '[x*]' | mawk 'END{print NR}'
4

0
12.10.2021, 13:43
0 ответов

Теги

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