使用sed在文件中用下划线替换点

Kum*_*ohn 4 linux bash sed

我试图使用 sed 编辑文件的输出。文件内容为

cat /tmp/Group_RM
t.p@k.p
t.m@k.k
Run Code Online (Sandbox Code Playgroud)

我试图获得如下输出:

cat /tmp/Group_RM
t_p@k_p
t_m@k_k
Run Code Online (Sandbox Code Playgroud)

我尝试了以下命令,但输出看起来很奇怪:

cat /tmp/Group_RM | sed 's/./_/g'
Run Code Online (Sandbox Code Playgroud)

输出是:

____ ___
_______
Run Code Online (Sandbox Code Playgroud)

sed 用下划线替换所有字符。当我尝试用“.”替换“_”时,sed 完美运行。

Adr*_*rth 11

你需要逃避之.类的\..匹配任何单个字符的特殊元字符

$ sed 's/\./_/g' Group_RM
t_p@k_p
t_m@k_k
Run Code Online (Sandbox Code Playgroud)

附带说明,cat不需要 -sed可以处理文件本身。