Se perl
estiver bem e o arquivo for pequeno o suficiente para os requisitos de memória
$ perl -0777 -pe 'BEGIN{$m = "// __MARKER__\n"}
s|$m\K.*?(?=\n$m)|join "\n", sort split/\n/,$&|gse' ip.txt
// __MARKER__
../library/_shared/_shared/components/ButtonPrimary/ButtonPrimary.stories
../library/_shared/_shared/components/IconChevronRightBlack/IconChevronRightBlack.stories
../library/_shared/_shared/components/InfoPill/InfoPill.stories
// __MARKER__
-
-0777
para sorver todo o arquivo como uma string -
$m = "// __MARKER__\n"
salve o marcador em uma variável -
$m\K.*?(?=\n$m)
captura a string entre os marcadores -
join "\n", sort split/\n/,$&
divide a string capturada em\n
, depois classifica e finalmente obtém uma única string unindo os elementos da matriz -
s
modifier para permitir que.
corresponda a\n
-
e
modifier para permitir o código na seção de substituição - use a opção
-i
para edição no local