Самый безопасный способ — использовать парсер JSON, иначе технически вы рискуете изменить данные.
Использованиеjq
:
$ jq -c. file.json
{"Foo":"ABC","Bar":"20090101100000","Quux":{"QuuxId":1234,"QuuxName":"Sam"}}
Флаг -c
для jq
является укороченной версией флага --compact-output
и побуждает jq
генерировать максимально компактный вывод. Точка — это простой проход -через фильтр, который не изменяет никакие данные.
+
является буквальным в базовом синтаксисе регулярного выражения (BRE ), поэтому ваш шаблон замены не соответствует.
Вы можете использовать s/^##*//
, s/^#\{1,\}//
или (в GNU sed)s/^#\+//
или переключиться на расширенные регулярные выражения (ERE )с помощью параметра командной строки -E
или -r
.