繁体   English   中英

为什么sed不在文件行中添加字符串?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM