我有一个文件,其行类似于以下内容:
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