sed 匹配\n换行符

假设 str="a,b,c,d"

echo ${str} | sed "s/,/\n/g"

输出:

a

b

c

d

echo ${str} | sed "s/,/\n/g" | sed  "s/\n/,/g"

输出:

a

b

c

d

没有匹配到\n换行符

这是因为sed 模式是以\n换行符作为行的结束标记的。它没有办法匹配到\n再替换

解决方法:

echo ${str} | sed "s/,/\n/g" | sed  "s/\n/,/g" | sed ":label;N;s/\n/,/;b label"

输出:

a,b,c,d

sed 匹配\n换行符,布布扣,bubuko.com

时间: 2024-11-03 05:41:31

sed 匹配\n换行符的相关文章

正则表达式匹配包括换行符的所有字符

今天在Java中想使用正则表达式来获取一段文本中的任意字符. (.*) 结果运行之后才发现,无法获得换行之后的文本.于是查了一下手册,才发现正则表达式中,"."(点符号)匹配的是除了换行符"\n"以外的所有字符. 查出了一个解决办法,经过一试,果然可以匹配包括换行符在内的任意字符,以下为正确的正则表达式匹配规则: ([\s\S]*)正则表达式匹配包括换行符的所有字符,布布扣,bubuko.com

关于php中正则匹配包括换行符在内的任意字符的问题总结

要使用正则匹配任意字符的话,通常有以下几种方法,这里我分别对每一种方法在使用的过程中做一个总结: 第一种方式:[.\n]*? 示例 ? PHP preg_match_all('/<div class="list">[.\n]*?<\/div>/i', $content, $data); 按道理这种方式应该是可以的,但我测试发现不行,因为这里中括号里面的“.”被当作一个普通的英文句号去处理了,而不是通配符,因此这里只能匹配到包含英语句号及换行符在内的任意内容了.

[Z] sed命令替换换行符

sed命令替换换行符 sed流编辑器是shell中处理文本内容的一大利器.sed命令从文本流中读取一行文本到模式空间中进行相应的命令.或脚本处理,因此在处理换行符时会有点特殊. 下面的命令可以很正确的执行: echo "a,b,c,d" |sed 's/,/\n/g' 但是如果我想恢复回来,下面的命令却没有效果了: echo "a,b,c,d" |sed 's/,/\n/g'|sed 's/\n/,/g' 这跟sed的行处理方式有关,sed读取一行时,会先把换行符去

sed删掉换行符

cat urfile | sed 'N;s/\n/ /' 版权声明:本文为博主原创文章,未经博主允许不得转载.

使用正则表达式匹配任意字符包括空格和换行符

注:元字符包括\ | ( ) [ ] { } ^ $ * + ? . ) 匹配中文字符的正则表达式: [\u4e00-\u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</>|<.*? />

正则表达式匹配任意字符(包括换行符)的写法

[\s\D]*    匹配换行和空格 今天想使用正则表达式来获取一段文本中的任意字符. 于是很随意得就写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本. 于是查了一下手册,才发现正则表达式中,“.”(点符号)匹配的是除了换行符“\n”以外的所有字符.同时,手册上还有一句话:要匹配包括 '\n' 在内的任何字符,请使用像 '[.\n]' 的模式. 于是我将正则表达式的匹配规则修改如下: ([.\n]*),当然,如果是在C#程序中直接写到话,需要改为([.\\n]*) 结果再

sed 中如何替换换行符

使用如下解决方案: sed ':a;N;$!ba;s/\n/ /g' 这将在一个循环里读取整个文件,然后将换行符替换成一个空格. 说明: 通过 :a创建一个标记 通过N追加当前行和下一行到模式区域 如果处于最后一行前,跳转到之前的标记处. $!ba ($! 意思是不在最后一行做这操作 (最后一行就被当成最后的一行)). 最后置换操作把模式区域(就是整个文件)的每一个换行符换成一个空格. 示例追加: $ echo -e "1\n2" | sed ':a;N;$!ba;s/\n/ /g'1

sed 用法之如何替换换行符

方法一: # echo -e "1\n2\n3\n4" | sed ':a;N;$!ba;s/\n/,/g' 1,2,3,4 sed ':a;N;$!ba;s/\n/,/g' 这将在一个循环里读取整个文件,然后将换行符替换成逗号. 说明: 通过 :a创建一个标记 通过N追加当前行和下一行到模式区域 如果处于最后一行前,跳转到之前的标记处. $!ba ($! 意思是不在最后一行做这操作 (最后一行就被当成最后的一行). 最后置换操作把模式区域(就是整个文件)的每一个换行符换成逗号. Fr

含有换行符的正则表达式如何匹配

含有换行符的正则表达式如何匹配: \s\S \S是各种空白字符,比如\n\t之类的,而\s是^\S 点号( . )可以匹配换行符之外的任何单个字符,被称之为通配符. 匹配包含\n在內的任何字符用 (.|\n). import re strvar = """hello world!""" patt = r'(.|\n)*' rs = re.match(patt, strvar) print rs.group() 用正则表达式来获取一段文本中的任意字