【问题标题】:sed replace text with equal sign =sed 用等号替换文本 =
【发布时间】:2020-01-24 07:20:12
【问题描述】:

我有几行以此开头的文本。 (后面的点只代表文本中的一些其他日期,并不重要)。

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

我想要做的是能够使用 sed 将每行的部分字符串替换为等号。像这样的东西。注意我只想替换第一个逗号,,即。让它看起来像这样2nd Monday=2019-01-14,2019-02-11,...

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 上找不到任何东西。感谢任何人的帮助。

【问题讨论】:

  • 你错过了 s。

标签: sed replace


【解决方案1】:

你可以试试这个

sed 's/,/=/1' filename

它将每行的第一个“,”替换为“=”符号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-14
    • 2011-06-19
    • 2013-10-19
    • 2023-03-02
    • 1970-01-01
    • 2014-12-22
    • 2020-02-20
    相关资源
    最近更新 更多