建议的方法是什么,并将其保存到新文件? 我试过了
sed -i 's/.././g' /tmp/folder/domains.new
但它也取代了单个时期..
答案 0 :(得分:1)
句号是一个RE元字符,因此您需要将其转义为字面意思:
sed 's/\.\././g' oldfile > newfile
答案 1 :(得分:1)
Ed Morton有正确的答案。这是另一种确保RE字元字符字面意义的方法(将它们包装在字符类中):
sed -i 's/[.][.]/./g' /tmp/folder/domains.new
或
sed -i 's/[.]\{2\}/./g' /tmp/folder/domains.new
或使用-E
选项启用扩展正则表达式,以防止转义{
和}
。
sed -i -E 's/[.]{2}/./g' /tmp/folder/domains.new
请注意,在替换部分中,.
和其他元字符始终被视为文字而非特殊。