Como posso substituir a última correspondência por uma string

1

Dada uma expressão regular e uma string de substituição, como posso usar o awk para implementar o seguinte:

  • se uma linha não tiver correspondência, não faz nada;
  • se uma linha contiver mais de uma correspondência, substitua a última correspondência pela sequência de substituição, no sentido da última correspondência que seria substituída por gsub() ;
  • se uma linha contiver exatamente uma correspondência, substitua a correspondência pela sequência de substituição.

Por exemplo, consulte "caractere inesperado" \ "em gawk

Obrigado.

    
por Tim 18.07.2017 / 10:10

1 resposta

1

Use seu padrão como separador de campo de awk '-F "PATTERN' e adicione uma condição se o número de campos > 2 (NF > 2) significar que seu padrão é preciso apenas uma vez mais = NF-1 todos os campos, exceto o último, quando você definir FS = OFS="PATTERN" novamente, imprima o "replaceString" e termine o último campo de impressão, não é necessário o gsub.

espero que você tenha a ideia

    
por 19.07.2017 / 05:16

Tags