如何将包含一个“0”字符的所有行更改为其他字符?

如何将包含一个“0”字符的所有行更改为其他字符?

我有一个文件,其行类似于以下内容:

0
0.1
0.0002
0
0.30

我想将这些行替换为单个0内容,例如0.0001.对于带有小数点和后面数字的行,我不想改变它们。

我尝试了以下 的变体sed,但它要么什么也不做,要么改变了所有零,甚至是小数点后的零:

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

似乎sed无法处理单个0字符。另外,我replace的系统上没有该命令。我还可以做些什么?

答案1

要替换一行中的单个 0:

sed 's/^0$/x/'

^ 匹配行的开头

$ 匹配行尾

所以上面的命令匹配行的开头,后面跟0,后面跟行尾。

答案2

使用awk:

awk '{gsub(/^0$/,0.0001)};1' file 

相关内容