Para substituir um único 0 em uma linha:
sed 's/^0$/x/'
^ corresponde ao início da linha
$ corresponde ao final de uma linha
Portanto, o comando acima corresponde ao início de uma linha, seguido por 0, seguido pelo final da linha.
Eu tenho um arquivo com linhas semelhantes às abaixo:
0
0.1
0.0002
0
0.30
Eu quero substituir as linhas por um único 0
por algo como 0.0001
. Para as linhas com um decimal e dígitos depois, não quero alterá-las.
Eu tentei as variações abaixo de sed
, mas ele não faz nada ou altera todos os zeros, mesmo após os decimais:
sed 's/0/x/g' file
sed 's/^0/x/g' file
sed 's/0^/x/g' file
sed 's/^0^/x/g' file
sed 's/"0"/x/g' file
sed 's/[0]/x/g' file
Parece que sed
não pode manipular um único caractere 0
. Além disso, não tenho o comando replace
no meu sistema. O que mais posso fazer?
Usando o Awk:
awk '{gsub(/^0$/,0.0001)};1' file
Tags sed