首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换文本文件中的文字"\r\n“

替换文本文件中的文字"\r\n“
EN

Stack Overflow用户
提问于 2016-11-02 12:52:23
回答 3查看 5.6K关注 0票数 0

我正在尝试用<p/>替换文本文件中的每个<p/>

我在没有运气的情况下尝试了以下几种方法:

代码语言:javascript
复制
sed 's#\r\n#<p/>#g' test.txt
sed 's#\r\n#<p/>#g' test.txt
sed 's#/\r/\n#<p/>#g' test.txt
sed ':a;N;$!ba;s/\r\n/<p/>/g' test.txt

以下是text.txt中的文本

代码语言:javascript
复制
https://www.pivotaltracker.com/story/\r\nhttps://www.pivotaltracker.com/story\r\n\r\nSome business text.\r\n\r\nSome business text. Task 123 is still a work in progress but we wanted it in develop to keep everything updated.
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-02 13:26:51

所有其他答案都假设您试图处理Windows样式的行尾,并将其更改为段落标记。

要将字符\r\n的文字序列更改为其他内容,只需使用全局替换:

代码语言:javascript
复制
sed 's!\\r\\n!<p/>!g' file

\本身需要被逃脱。

票数 5
EN

Stack Overflow用户

发布于 2016-11-02 13:01:41

代码语言:javascript
复制
cat file | tr -d '\r' | sed 's|$|</p>|g' | tr -d '\n'
票数 2
EN

Stack Overflow用户

发布于 2016-11-02 13:00:21

sed相比,用perl一行程序操作行尾要容易得多。这是完全未经测试的,但应该有效(在我的脑海中,唯一的问题是perl现在是否可以进行通用换行符处理,在这种情况下,您永远不会看到\r):

代码语言:javascript
复制
perl -e 'undef $/; while (<>) { s:\r\n:<p/>:g; print; }' test.txt > xtest.txt

或等量

代码语言:javascript
复制
perl -pe 'BEGIN { undef $/ } s:\r\n:<p/>:g' test.txt > xtest.txt

关键是开头的undef $/,这使得perl将整个test.txt读入一个大的长字符串;然后,显而易见的正则表达式就开始工作了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40380437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档