Eu tenho linha
* {@jira: PIVOT-9968} Provide a way to pass an `IMemoryCollector` to `IInternalMemoryMonitored#getMemoryStatistics(memoryCollector)` in order to prevent the count of duplicated blocks.
Eu queria escapar apenas do primeiro que contém o número do tíquete(?). Escreva um script para adicionar barra invertida para meu problema anterior
* /{@jira: PIVOT-9968/} Provide a way to pass an `IMemoryCollector` to `IInternalMemoryMonitored#getMemoryStatistics(memoryCollector)` in order to prevent the count of duplicated blocks.
tentei
mawk '/^\* {@jira: PIVOT/ { gsub(/[{} ]/,"\\\\&") } 1' changelog.md > tmp && mv tmp changelog.md
e consegui
*\ \{@jira:\ PIVOT-8019\}\ Pivot:\ Added\ `MaxAppendOnlyFunction`\ and\ \ `MinAppendOnlyFunction`\ aggregation\ functions\ that\ do\ not\ support\ disaggregation\ but\ can\ be\ used\ within\ an\ aggregate\ provider.
o que devo mudar? gsub?
Em
awk
sub()
substituirá a primeira ocorrência de uma correspondênciagsub()
substituirá todas as ocorrências de uma correspondência/[{} ]/
diz para corresponder a qualquer 1 dos 3 caracteres:{
,}
eSe removermos o espaço (deixando-nos com
/{}/
):Supondo que o OP queira usar uma barra invertida como caractere de escape, e que haja apenas um par de chaves na linha, isso deve ser suficiente para atender ao requisito do OP.
Se vários pares de chaves podem ocorrer em uma linha ...
Executar o novo código neste arquivo modificará erroneamente todos os pares de chaves:
Para limitar as substituições apenas ao primeiro par de chaves, podemos usar um par de
sub()
chamadas em que cada chamada substitui a primeira ocorrência de um único caractere; observe que substituímos/[{}]/
por/{/
and/}/
e, como sabemos o caractere com o qual faremos a correspondência, podemos substituir\\&
pelo caractere real (para uma pequena simplificação no código):Implementando esta última substituição um de cada vez com
sed
:Onde:
/1
diz para substituir a primeira ocorrênciaawk / sub()
abordagem precisamos executar duas substituições separadas para corresponder ao primeiro par de chaves