[英]Why sed does not add string in the file line?
我正在尝试使用OSX sed在文件的开头添加带有一些字符串( \\mu
)的新行。 现在,我可以对常见的文本和数字执行此操作。 但是对于符号,它不起作用。
sed -i -e '1s/^/\\mu/' file
这会添加mu
而不是\\mu
。
我在OSX 10.13.6(我认为是最新的Xtools),达尔文17.7.0上执行sed -i -e '1s/^/\\\\mu/' ./file
。 我确实注意到,针对该命令的不同变体生成重复文件是异常的。 让我解释,
sed -i -e 's/^/\\mu/' ./tmp.txt
即在每个新行上放置“ \\ mu”。 在文件“ tmp.txt”中输出,
\mulease 192.168.234.5 {
\mu starts 3 2018/11/21 18:53:11;
\mu ends 3 2018/11/21 18:54:11;
\mu tstp 3 2018/11/21 18:54:11;
\mu cltt 3 2018/11/21 18:53:11;
etc...
如果我执行您想要的命令,
sed -i -e '1s/^/\\mu/' ./tmp.txt
在文件“ tmp.txt”中输出
\mulease 192.168.234.5 {
starts 3 2018/11/21 18:53:11;
ends 3 2018/11/21 18:54:11;
tstp 3 2018/11/21 18:54:11;
cltt 3 2018/11/21 18:53:11;
...etc
现在,旧文件“ tmp.txt”已复制并变为“ tmp 3.txt”,而正确编辑了最新版本的tmp.txt。 在文件名中引入空格并不酷('tmp 3.txt),为什么要从3开始? 希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.