zsh :Почему я получаю приостановленные фоновые процессы, даже если у меня есть `stty -tostop `?

sed '/^{/,/^}/!d' < input

Будет извлекать части файла, содержащиеся между строками, начинающимися с {, и следующей строкой после этой, начинающейся с }.

pcregrep -Mo '(?s)(\{(?:[^{}"]++|"(?:\\.|[^"])*+"|(?1))*\})' < file

Будет извлекать пары верхних -уровней {...}, где бы они ни находились, будучи достаточно умным, чтобы справляться с вводом, например {"x":{"y":1}}(, вложенным{})или{ "x}" }(}внутри строк )или { "x\"}" }(. экранированные кавычки в строках ).

Если у вас нет и вы не можете установитьpcregrep(поставляется с библиотекой PCRE ), но у вас есть GNU grep, построенный с помощью PCRE, вы можете заменить на grep -zo, хотя это загружает всю файл в памяти. Или используйте perl -l -0777 -ne 'print for m{regexp-above}g'.

1
26.07.2020, 12:15
0 ответов

Теги

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