临时文件中只有22.5.
我用
sed 's/.//' Temp
Run Code Online (Sandbox Code Playgroud)
我期待225但得到2.5
为什么?
点是一个特殊字符,意思是"匹配任何字符".
$ sed s/\\.// temp
225
Run Code Online (Sandbox Code Playgroud)
你会认为你可以做到sed s/\.// temp,但是你的shell会逃脱那个单反斜杠并传递s/.//给sed ..所以,你需要放两个反斜杠来传递一个文字反斜杠到sed,这将正确地\.视为一个文字点.或者,您可以引用命令来保留文字反斜杠:
$ sed "s/\.//" temp
225
Run Code Online (Sandbox Code Playgroud)
你得到2.5的原因s/.//是这个点匹配文件中的第一个字符并将其删除.