sed - SED 替换包含 CR LF 的字符串
问题描述
我正在尝试替换文件文本中包含 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
没有成功
解决方案
切换到 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 伊克尔
推荐阅读
- node.js - 在 .env 文件中存储私有值是否安全?
- java - 使用递归方法在java中打印文本
- java - facing error while unmarshaling from sml to java
- sql - SQL在同一张表上选择两个相同的列但具有不同的ORDER
- angular - After upgrading to Angular 9, problem with the command "ng lint --fix"
- asp.net-web-api - Web API Clear Button
- python - After Add New model.How to Django Table Migrate without losing data
- shell - `command > output` 和 `command 2>&1 > output` 有什么区别?
- android - How can I prevent closing app when I double-click fast in Android?
- android - How to set floating button visibility to GONE when floating button arrives to the same height position of a TextView inside NestedScrollView?