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

Tyl*_*ler 4 sed

我有一个类似于以下行的文件:

0
0.1
0.0002
0
0.30
Run Code Online (Sandbox Code Playgroud)

我想用单行替换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
Run Code Online (Sandbox Code Playgroud)

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

for*_*are 19

替换一行中的单个 0:

sed 's/^0$/x/'
Run Code Online (Sandbox Code Playgroud)

^ 匹配行首

$ 匹配行尾

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

  • 整个 sed 命令适用于文件的*每一*行。g 修饰符表示替换行中的多个模式。 (11认同)
  • 不需要`g`修饰符.. (8认同)