Como sed substituir este fim da linha?

0

Eu quero substituir esse final da linha [1-9] \ \hline por [1-9] & \ \hline em que um novo e comercial. Amostra de dados

The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000  4 \ \hline

Meu pseudocódigo onde estou preso para criar um espaço reservado para [1-9] , alguns detentores de $1 e $2

sed "s/[1-9] \\\\ \\hline/*$/TODO/"

Resultado esperado:

The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000  &4 \ \hline

OS: Debian 8.5

    
por Léo Léopold Hertz 준영 27.12.2016 / 20:12

1 resposta

2

Você pode combinar um ou mais dígitos decimais seguidos pelo espaço em branco horizontal opcional e, em seguida, usar & no teste de substituição para substituí-lo depois de um literal e comercial \&

$ echo 'The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000  4 \ \hline' |
   sed 's/[0-9]\{1,\}[ \t]*\\/\&&/'
The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000  &4 \ \hline

ou um pouco mais compactamente, usando regex estendido

$ echo 'The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000  4 \ \hline' |
   sed -E 's/[0-9]+\s*\\/\&&/'        
The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000  &4 \ \hline
    
por 27.12.2016 / 20:26