【问题标题】:Linux sed command: replace string1 with string2 but only when string1 is not at the end of the lineLinux sed 命令:将 string1 替换为 string2 但仅当 string1 不在行尾时
【发布时间】:2020-10-08 11:18:09
【问题描述】:

我有带有换行符
和空格字符的 Html 文件

我想将换行符 br/ 替换为空格 #160;但只有当
字符串在行的中间,而不是行尾(重新换行 段落,输出来自 pdftohtml 命令行)。

换句话说,当 s1 不在行尾时,使用 sed 将 s1 替换为 s2。

建议?我正在尝试自己谷歌/解决它,但也许你们知道答案

【问题讨论】:

  • 我们不是在这里推荐工具/代码,而是在您提供搜索/实验/测试并遇到现有代码问题,甚至尝试失败时提供帮助
  • 您可以尝试使用正则表达式。为确保 br 不在末尾,要求其后至少有一个字符。像sed -e s|<br/>.| | 这样的东西。注意使用 |作为分隔标记以避免转义

标签: string sed line substitution


【解决方案1】:

您似乎想匹配 s1 后跟任何字符,并将其替换为 s2 后跟该匹配字符。

% echo 's1foos1bars1bazs1' | sed 's/s1\(.\)/s2\1/g'
s2foos2bars2bazs1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2014-01-08
    • 2017-10-17
    • 1970-01-01
    • 2014-09-09
    相关资源
    最近更新 更多