sed замените текст знаком равенства = - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть строки текста, которые начинаются с этого.(точки сзади просто представляют некоторые другие даты в тексте и не важны).

2nd Monday,2019-01-14,2019-02-11,......
2nd Tuesday,2019-01-08,2019-02-12,......

Что я хочу сделать - это иметь возможность заменить часть строки каждой строки знаком равенстваиспользуя сед.Что-то вроде этого.Заметьте, что я хочу заменить только первую запятую ,, т.е.2nd Monday=2019-01-14,2019-02-11,... 1006 *

sed -i '' '/,2019/=2019/' file

Но мой терминал выдает мне эту ошибку.

sed: 1: "/,2019/=/": extra characters at the end of = command

Увидев, что это команда, я попытался ее убрать собратная косая черта \.

sed -i '' '/,2019/\=2019/' file

Но это дает эту ошибку.

sed: 1: "/,2019/\=/": invalid command code \

Это работает, если часть строки поиска содержит знак равенства =, но, очевидно, не когда равенствознак находится в части строки замены sed.

Я искал, вероятно, 30 минут сейчас, но ничего не могу найти в Google.Цените чью-либо помощь.

1 Ответ

2 голосов
/ 24 сентября 2019

Вы можете попробовать это

sed 's/,/=/1' filename

Он заменяет первый «,» каждой строки знаком «=».

...