O comando requer o GNU sed e parece inserir a string Dcom.sun.management.jmxremote.ssl=false seguida por uma nova linha antes da primeira ocorrência de -jar no final de uma linha.
Exemplo:
something
something
something-jar
something
é transformado em
something
something
somethingDcom.sun.management.jmxremote.ssl=false
-jar
something
O comando sed lê todo o arquivo na memória executando H para cada linha do arquivo (acrescenta a linha atual ao "espaço de espera" com um caractere de nova linha no início). Quando ele atinge a última linha ( $ ), ele troca o espaço de espera pelo espaço de padrão ( x ) e exclui a primeira nova linha (ponha lá executando H para a primeira linha do arquivo). Em seguida, ele substitui -jar\n por Dcom.sun.management.jmxremote.ssl=false\n-jar\n (o & é o que foi correspondido pela expressão). Em seguida, imprime as linhas coletadas ( p ).
Outra maneira de fazer a mesma coisa com awk :
awk 'skip==0 && sub("-jar$", "Dcom.sun.management.jmxremote.ssl=false\n-jar") { skip=1 } { print }' "$File"
Isso tenta fazer a mesma substituição em cada linha e, quando tiver êxito, define skip=1 , o que fará com que ela não tente novamente. Cada linha é impressa, independentemente de uma substituição ter ocorrido ou não.
Isso não armazena o arquivo inteiro na memória.