localize e substitua um número por outro

1

Eu criei uma matriz de genótipo 0,1,2 e desejo substituir todos os -1 por 9 .

0   0   -1  0   0   0   0   2   0   0   0   0   -1
0   0   1   0   0   0   0   0   0   0   0   -1   1
0   0   2   0   0   -1  2   0   0   0   -1  0    0

Eu tentei isso:

sed -ie 's/^[-1] /9 /' file1 > file2

mas parece que não funciona.

Existe alguma maneira de fazer isso?

    
por Anna1364 03.08.2017 / 03:48

4 respostas

2

sed 's/-1/9/g' file > file2
    
por 03.08.2017 / 04:16
1
sed -i 's/-1/9 /g' file
sed 's/-1/9 /g' file1 > file2
    
por 03.08.2017 / 04:36
0

Para fazer isso de maneira segura:

sed -e '
   s/$/ /
   :a;s/ -1 / 9 /;ta
   s/.$//
' file1

onde

  • s/$/ / insere um espaço no final da linha
  • :a;s/ -1 / 9 /;ta do substitution (o espaço é necessário se -1 no final da linha)
  • s/.$// remove espaço do final da linha
por 03.08.2017 / 12:47
-2

Eu encontrei a resposta

sed -E 's/[-1] / 9/' file1 > file2

pode fazer o trabalho

    
por 03.08.2017 / 04:13

Tags