【问题标题】:SED to replace strings containing CR LFSED 替换包含 CR LF 的字符串
【发布时间】:2020-09-07 02:08:14
【问题描述】:

我正在尝试替换文件文本中包含 CR 和 LF 的字符串。

所以输入文件

abcd
efgh
ijkl

变成

abcd
zxgh
ijkl

从字面上看,我希望将字符串“cd + CR + LF + ef”替换为“cd + CR + LF + zx”。 我试过了

sed -e 's/cd\red/cd\rzx/g' file
sed -e 's/cd\r\ned/cd\r\nzx/g' file

没有成功

【问题讨论】:

标签: sed replace newline


【解决方案1】:

使用sed,您可以这样做:

sed '/cd\r$/N;s/cd\r\nef/cd\r\nzx/' file

【讨论】:

  • 谢谢。我还必须使用命令unix2dos file 才能使其工作。
【解决方案2】:

切换到 Perl。

perl -0777 -pe 's/cd\r\nef/cd\r\nzx/' file

或者使用 GNU sed:

sed '/cd\r$/{N;s/cd\r\nef/cd\r\nzx/}' file

输出:

A B C D zxgh 伊克尔

【讨论】:

  • 谢谢。我还必须使用命令unix2dos file 才能使其工作。
猜你喜欢
  • 1970-01-01
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
  • 2019-03-14
  • 2016-03-28
  • 1970-01-01
  • 2018-06-20
相关资源
最近更新 更多