替换“。”在文件unix中

时间:2015-05-19 15:31:40

标签: unix replace sed

我正在尝试替换文件中字符串中间出现的任何句点。

我使用sed以及's/./5/g''s/'.'/5/g尝试了's/"."/5/g',但没有一个能为我提供我想要的输出。

第一个选项将整个文件替换为单个5,第二个选项用5替换每个单个字符,第三个选项似乎没有做任何事情(我使用grep来计算。的出现次数。它们仍在那里)。

非常感谢任何有关如何执行此操作的帮助

INFILE:

010001010.10101010101
需要

outfile:

010001010510101010101

4 个答案:

答案 0 :(得分:3)

正则表达式模式.表示"任何字符"。你想要s/\./5/g

答案 1 :(得分:0)

只需在dot之前添加反斜杠,因为它的特殊字符

sed 's/\./5/g' file

答案 2 :(得分:0)

您遇到的问题是“。”也被用作通配符。您可以通过使用\来进行ESCAPING来解决此问题,因此它就像s/\./5/g

答案 3 :(得分:0)

对于简单的转换,您可以使用tr:

cat file | tr "." "5"