Почему sed не добавляет строку в строку файла? - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь добавить новую строку с некоторой строкой (\mu) в начале файла, используя OSX sed.Теперь я могу сделать это для общего текста и чисел.Но для символов это не работает.

sed -i -e '1s/^/\\mu/' file

Это добавляет mu, но не \mu.

1 Ответ

0 голосов
/ 25 ноября 2018

Я выполнил sed -i -e '1s/^/\\mu/' ./file на OSX 10.13.6 (последний Xtools, я думаю), Дарвин 17.7.0.Я заметил, что генерация дубликатов файлов для разных вариантов команды была аномальной.Позвольте мне объяснить,

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?Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...