Bash 替换“文字”\r\n“;在文本文件中
我正在尝试用Bash 替换“文字”\r\n“;在文本文件中,bash,sed,Bash,Sed,我正在尝试用替换文本文件中的每个\r\n 我尝试了以下方法,但没有成功: 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 使用perl一行程序比使用sed更容易操作行结尾。这是完全未经测试的,但应该是可行的(在我看来,唯一的问题是perl现在
替换文本文件中的每个\r\n
我尝试了以下方法,但没有成功:
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
使用perl一行程序比使用
sed
更容易操作行结尾。这是完全未经测试的,但应该是可行的(在我看来,唯一的问题是perl现在是否可以进行通用换行处理,在这种情况下,您永远不会看到\r
):
perl-e'unde$/;while(){s:\r\n::g;print;}'test.txt>xtest.txt
或同等地
perl -pe 'BEGIN { undef $/ } s:\r\n:<p/>:g' test.txt > xtest.txt
perl-pe'BEGIN{unde$/}s:\r\n::g'test.txt>xtest.txt
开始时的键是unde$/
,这使得perl将整个test.txt
读取为一个大的长字符串;明显的正则表达式就可以工作了。cat文件| tr-d'\r'| sed's |$||g'| tr-d'\n
cat file | tr -d '\r' | sed 's|$|</p>|g' | tr -d '\n'
所有其他答案都假设您正在尝试处理Windows样式的行尾,并将其更改为段落标记
要将字符的文字序列\r\n
更改为其他内容,只需使用全局替换:
sed 's!\\r\\n!<p/>!g' file
sed的\\r\\n!g'锉刀
\
本身需要转义。您是否尝试了sed:a;N、 美元!文学士;s#\r\n##g'
?我不应该指定文件吗?呃,是的,我认为这很明显。文本是否包含文字字符\r\n
,或者您这样写是为了告诉我们回车符和换行符在哪里?这是文件中的确切文本tr-d'\r'
我已经从我的文件中添加了测试。。。当我运行这些时,xtest.txt
仍然包含\r\n
字符
cat file | tr -d '\r' | sed 's|$|</p>|g' | tr -d '\n'
sed 's!\\r\\n!<p/>!g' file