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

时间:2018-11-25 11:01:10

标签: macos sed

我正在尝试使用OSX sed在文件的开头添加带有一些字符串(DEFAULT '')的新行。 现在,我可以对常见的文本和数字执行此操作。但是对于符号来说,它是行不通的。

\mu

这将添加sed -i -e '1s/^/\\mu/' file ,而不添加mu

1 个答案:

答案 0 :(得分:0)

我在达尔文17.7.0(OSX 10.13.6(我认为是最新的Xtools))上执行了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开始? 希望对您有所帮助。