首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

是否可以(在sed中)仅当前面的字符不是点时删除换行符?

在sed中,可以使用正则表达式来匹配和操作文本。要删除换行符,但仅当前面的字符不是点时,可以使用sed命令结合正则表达式来实现。

下面是一个示例的sed命令:

代码语言:txt
复制
sed ':a;N;$!ba;s/\([^\.]\)\n/\1/g' filename

解释:

  • :a;N;$!ba; 是一个sed的标签和循环结构,用于将整个文件读入模式空间。
  • s/\([^\.]\)\n/\1/g 是一个sed的替换命令,用于匹配非点字符后面的换行符,并将其替换为非点字符本身。

请注意,上述命令中的filename应替换为您要操作的实际文件名。

这个命令的作用是将文件中非点字符后面的换行符删除,保留点字符后面的换行符。这在某些文本处理场景中可能会有用,例如处理段落文本时保持段落的完整性。

关于sed的更多信息和用法,请参考腾讯云的产品文档:Linux 命令行工具 - sed

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

sed & awk 第二版学习(五)—— 高级 sed 命令

模式空间最初的内容和新的输入之间用换行符分隔。模式空间中嵌入的换行符可以利用转移序列“\n”来匹配。多行模式空间中,元字符“^”匹配模式空间中的第一个字符,而不匹配换行符面的字符。...注意 sed 脚本本身被包围在单引号,这可以防止对 shell 特殊的字符被解释。...该 sed 脚本在三个不同的尝试匹配搜索字符串,每一个都标有用于查找搜索模式的地址。...寻找模式之前,使用替换命令删除嵌入的换行符面的行以及该嵌入的换行符,目的是只尝试匹配第二行。如果成功,那么不带标签的分支命令就将控制转移到脚本的底部并打印该行。...seen[NR] = 1 next # 跳过剩余的代码,继续处理下一行 } # 如果这不是第一行,则检查当前行与前一行拼接后是否包含搜索字符

11410

【天枢系列 01】Linux行数统计:命令对决,谁才是王者?

如果文件名包含空格或特殊字符,应该将文件名用引号括起来,以确保命令正确解析文件名。 使用 -c 选项,wc 命令会统计文件的每个字节,包括文本文件换行符和空格符。...-c:显示匹配的行数,而不显示具体匹配的内容。 -A NUM:显示匹配行及其后面的 NUM 行。 -B NUM:显示匹配行及其前面的 NUM 行。...动作:对应sed要执行的操作,如替换、删除、添加等。 文件名:要处理的文件名。 4.2 主要选项 -e:允许命令行上指定多个编辑命令。 -i:直接修改文件内容,而不是将结果输出到标准输出。...sed 's/原字符串/新字符串/g' 文件名 2.删除操作 这个命令将文件匹配到的行删除。其中,/匹配条件/ 是删除的条件。...sed -n 'p' 文件名 5.行匹配 这个命令将文件匹配到的行打印出来。 sed -n '/匹配条件/p' 文件名 6.保存修改 这个命令会直接修改文件内容,而不是标准输出显示结果。

19010
  • 使用 sed 命令进行复制、剪切和粘贴

    本文已经 Linux 和 NetBSD 版本上进行了测试,所以你可以使用你的计算机上找到的任何 sed,但是对于 BSD sed,你必须使用短选项(例如 -n 而不是 --quiet)。...因为它没有可视化模式,所以会创建一个 模式空间(pattern space),这是一个内存空间,其中包含来自输入流的当前行(删除了尾部的任何换行符)。填充模式空间后,sed 将执行你的指令。...为了遍历文件提供一灵活性,sed 还提供了 保留空间(hold space)(有时也称为 保留缓冲区(hold buffer)),即 sed 内存为临时数据存储保留的空间。...用 sed 剪切和粘贴 现在你知道了如何将字符串从模式空间转到保留空间并再次返回,你可以设计一个 sed 脚本来复制、删除,然后文档粘贴一行。...第二个脚本删除包含字符串 three 的任何行。这样就完成了与文字处理器或文本编辑器的 剪切 动作等效的功能。

    1.7K20

    【Linux篇】--sed的用法

    处理,把当前处理的行存储临时缓冲区,称为“模式空间”(pattern space),接着用sed命令处理缓冲区的内容,处理完成后,把缓冲区的内容送往屏幕。...i\ 在当前行上面插入文本。 c\ 把选定的行改为新的文本。 d 删除删除选择的行。 D 删除模板块的第一行。 s 替换指定字符 h 拷贝模板块的内容到内存的缓冲区。...表示后面的命令对所有没有被选定的行发生作用。 = 打印当前行号码。 # 把注释扩展到下一个换行符以前。 3、替换标记 g 表示行内全面替换。 p 表示打印行。...$ 匹配行结束,如:/sed$/匹配所有以sed结尾的行。 . 匹配一个非换行符的任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。...三、案例 1、替换文本字符串: sed 's/book/books/' file 2、全面替换 sed 's/book/books/g' file 当需要从第N处匹配开始替换可以使用 /Ng:

    1.6K20

    《Linux命令行与shell脚本编程大全》第二十一章 sed进阶

    sed编辑器读取数据流,它会基于换行符的位置将数据分成行,一次处理一行数据。 有时会需要对跨多行的数据执行特定操作。...第二次执行的,可以替换掉第一个System Admin。但是存在问题:当点号匹配到了换行符就把换行符删掉了,这两行就合并在了一起。 要注意N命令的顺序。...21.2 保持空间 1.模式空间(pattern space)是一块活跃的缓冲区,sed编辑器上执行命令它会保存待检查的文本,但它并不是sed编辑器保存文本的唯一区间。...21.5.2 替代单独的单词 有时需要提取这个字符串的一部分。 sed编辑器用圆括号来定义替换模式的子模式。你可以替代模式中使用特殊字符来引用每个子模式。...解决方法是让sed编辑器忽略任何嵌入到原始标签的大于号。可以创建一个字符组来排除大于号。 中间不能有>。否则不删除。 $sed ‘s/]*>//g’ data.txt 3.

    1.7K90

    Linux:sed命令详解

    ,追加在原有内容的后面 l 列出非打印字符 p 打印行 n 读入下一输入行,并从下一条命令而不是第一条命令开始对其的处理 q 结束或退出 sed r 从文件读取输入行 !...只有当命令存在语法错误时,sed 的退出状态才不是 0。 5.正则表达式元字符 与 grep 一样,sed 也支持特殊元字符,来进行模式查找、替换。...不同的是,sed 使用的正则表达式是括斜杠线"/"之间的模式。 如果要把正则表达式分隔符"/"改为另一个字符,比如 o,只要在这个字符前加一个反斜线,字符后跟上正则表达式,再跟上这个字符即可。...sed 先将输入行从文件复制到模式空间里,然后对该行执行 sed 命令,最后将模式空间里的内容显示屏幕上。如果发出的是命令 d,当前模式空间里的输入行会被删除,不被显示。...无论什么字符换行符、反斜线除外),只要紧跟s命令,就成了新的串分隔符。 6.4  e 选项 -e 是编辑命令,用于 sed 执行多个编辑任务的情况下。

    7.1K60

    linux下sed正则表达式匹配批量替换文件的内容

    处理,把当前处理的行存储临时缓冲区,称为『模式空间』(pattern space),接着用sed命令处理缓冲区的内容,处理完成后,把缓冲区的内容送往屏幕。...-h --help 显示帮助 -n --quiet --silent 显示script处理后的结果 -V --version 显示版本信息 命令 命令 说明 d 删除删除选择的行 D 删除模板块的第一行...s 替换指定字符 h 拷贝模板块的内容到内存的缓冲区 H 追加模板块的内容到内存的缓冲区 g 获得内存缓冲区的内容,并替代当前模板块中文本 G 获得内存缓冲区的内容,并追加到当前模板块文本的后面...l 列表不能打印字符的清单 n 读取下一个输入行,用下一个命令处理新的行而不是第一个命令 N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码 p 打印模板块的行 P 打印模板块的第一行...表示后面的命令对所有没有被选定的行发生作用 = 打印当前行号 # 把注释扩展到第一个换行符以前 接下来主要介绍替换功能 替换的使用 命令 说明 g 表示行内全面替换 p 表示打印行 w 表示把行写入一个文件

    5.9K10

    linuxsed命令总结

    处理,把当前处理的行存储临时缓冲区,称为模式空间(pattern space),接着用sed命令处理缓冲区的内容,处理完成后,把缓冲区的内容送往屏幕。...G # 获得内存缓冲区的内容,并追加到当前模板块文本的后面。 l # 列表不能打印字符的清单。 n # 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。...# 表示后面的命令对所有没有被选定的行发生作用。 = # 打印当前行号码。 # # 把注释扩展到下一个换行符以前。 sed替换标记 g # 表示行内全面替换。 p # 表示打印行。...定界符 以上命令字符 / sed作为定界符使用,也可以使用任意的定界符: sed 's:test:TEXT:g' sed 's|test|TEXT|g' 定界符出现在样式内部,需要进行转义...h命令和G命令 sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区,除非行被删除或者输出被取消,否则所有被处理的行都将 打印屏幕上。

    3.2K20

    Linux三剑客命令之Sed

    命令名称 Sed 一个强大的流式文本编辑器 详细说明 sed是一种流编辑器,也是文本处理中非常好的工具,配合正则使用更强大处理,把当前处理的行存储临时缓冲区,称为“模式空间”,接着用sed命令处理缓冲区的内容...c\ #把选定的行改为新的文本 d #删除删除选择的行 D #删除模板块的第一行 s #替换指定字符 h #拷贝模板块的内容到内存的缓冲区 H #追加模板块的内容到内存的缓冲区 g...#获得内存缓冲区的内容,并替代当前模板块的文本 G #获得内存缓冲区的内容,并追加到当前模板块文本的后面 l #列表不能打印字符的清单 n #读取下一个输入行,用下一个命令处理新的行而不是用第一个命令...#表示后面的命令对所有没有被选定的行发生作用 = #打印当前行号码 # #把注释扩展到下一个换行符以前 Sed替换命令 g #表示行内全面替换(全局替换配合s命令使用) p #表示打印行 w...文件可以不存在 #如果文件存在,就会被重定向不是追加 7、追加与插入 [root@centos001 ~]#sed '/^l/a\2017-08-08' test2 linux centos6.8 #

    1.5K30

    使用 sed 命令进行复制、剪切和粘贴

    本文已经 Linux 和 NetBSD 版本上进行了测试,所以你可以使用你的计算机上找到的任何 sed,但是对于 BSD sed,你必须使用短选项(例如 -n 而不是 --quiet)。...因为它没有可视化模式,所以会创建一个 模式空间pattern space,这是一个内存空间,其中包含来自输入流的当前行(删除了尾部的任何换行符)。填充模式空间后,sed 将执行你的指令。...为了遍历文件提供一灵活性,sed 还提供了保留空间hold space(有时也称为 保留缓冲区hold buffer),即 sed 内存为临时数据存储保留的空间。...用 sed 剪切和粘贴 现在你知道了如何将字符串从模式空间转到保留空间并再次返回,你可以设计一个 sed 脚本来复制、删除,然后文档粘贴一行。...第二个脚本删除包含字符串 three 的任何行。这样就完成了与文字处理器或文本编辑器的 剪切 动作等效的功能。

    1.9K20

    Sed..

    sed命令 a\ # 在当前行下面插入文本。 i\ # 在当前行上面插入文本。 c\ # 把选定的行改为新的文本。 d # 删除删除选择的行。 D # 删除模板块的第一行。...G # 获得内存缓冲区的内容,并追加到当前模板块文本的后面。 l # 列表不能打印字符的清单。 n # 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。...# 表示后面的命令对所有没有被选定的行发生作用。 = # 打印当前行号码。 # # 把注释扩展到下一个换行符以前。 sed替换标记 g # 表示行内全面替换。...定界符 以上命令字符 / sed作为定界符使用,也可以使用任意的定界符: sed 's:test:TEXT:g' sed 's|test|TEXT|g' 定界符出现在样式内部,需要进行转义:...sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区,除非行被删除或者输出被取消,否则所有被处理的行都将 打印屏幕上。

    1.6K20

    Linux sed 命令的使用

    当前行下面插入文本 i \ 在当前行上面插入文本 c\ 将选定的行,改为新的文本 D 删除模板块的第一行 d 删除选择的行 g 获取缓冲区的内容,并替换当前模板块的文本 G 。。。。。。。。...表示后面的命令对所有没有被选定的行发生作用 = 打印当前号码 # 把注释扩展到下一个换行符以前。 替换标记 g 表示行内全面替换。 p 表示打印行。 w 表示把行写入一个文件。...$ 匹配行结束,如:/sed$/匹配所有以sed结尾的行。 . 匹配一个非换行符的任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。...以上命令字符 / sed作为定界符使用,也可以使用任意的定界符: sed 's:StringFileOriginal:NewStringFile:g' sed 's|StringFileOriginal...Example,所有包含String的都写入file sed -n '/String/w file' Example 追加命令:a\ 将 this is a test line 追加到 以test

    3.1K100

    shell脚本编写手册(2021重编)

    expr通过指定冒号选项计算字符字符数) expr bkeep.doc : '\(.*\).doc' # expr可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名...1字符集的补集替换此字符集,要求字符集为ASCII -d # 删除字符串1所有输入字符 -s # 删除所有重复出现字符序列,只保留第一个...4的 2 当第二列值大于3,创建空白文件,文件名为当前行第一个域$1 (touch $1) 3 将文档 liu 字符串替换为 hong...# 对其前面的要匹配的范围取反 D # 删除当前模式空间中直到并包含第一个换行符的所有字符(/....*/匹配模式空间中所有内容,匹配到就执行D,没匹配到就结束D) N # 追加下一个输入行到模式空间后面并在第二者间嵌入一个换行符,改变当前行号码,模式匹配可以延伸跨域这个内嵌换行

    3.3K30

    每天一个 Linux 命令(3):sed

    推荐:每天一个 Linux 命令(2):od 功能简介 sed是一种流编辑器,也是文本处理中非常好的工具,配合正则使用更强大处理,把当前处理的行存储临时缓冲区,称为“模式空间”,接着用sed命令处理缓冲区的内容...d #删除删除选择的行 D #删除模板块的第一行 s #替换指定字符 h #拷贝模板块的内容到内存的缓冲区 H #追加模板块的内容到内存的缓冲区 g #获得内存缓冲区的内容,并替代当前模板块的文本...G #获得内存缓冲区的内容,并追加到当前模板块文本的后面 l #列表不能打印字符的清单 n #读取下一个输入行,用下一个命令处理新的行而不是用第一个命令 N #追加下一个输入行到模板块后面并在二者间嵌入一个新行...#表示后面的命令对所有没有被选定的行发生作用** = #打印当前行号码** # #把注释扩展到下一个换行符以前** Sed替换命令 g #表示行内全面替换(全局替换配合s命令使用) p #表示打印行...#匹配一个非换行符的任意字符 * #匹配0个或多个字符 [] #匹配一个指定范围内的字符 [^] #匹配一个不在指定范围内的字符 (..)

    1.1K30

    常见linux命令介绍-sed

    执行filename内的sed动作 -r : 脚本中使用扩展正则表达式。...-i :直接修改文件内容 -s:将输入文件视为各个独立的文件而不是一个长的连续输入。 sed命令 命令 说明 a\ 在当前行下面插入文本。 i\ 在当前行上面插入文本。...d 删除删除选择的行。 D 删除模板块的第一行。 s 替换指定字符 h 拷贝模板块的内容到内存的缓冲区。 H 追加模板块的内容到内存的缓冲区。...表示后面的命令对所有没有被选定的行发生作用。 = 打印当前行号码。 # 把注释扩展到下一个换行符以前。 sed替换标记 标记 说明 g 表示行内全面替换。 p 表示打印行。...\$ 匹配行结束,如:/sed$/匹配所有以sed结尾的行。 . 匹配一个非换行符的任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。

    1.6K10

    linux实战(一)

    处理,把当前处理的行存储临时缓冲区,称为“模式空间”(pattern space),接着用sed命令处理缓冲区的内容,处理完成后,把缓冲区的内容送往屏幕。...保持和获取h命令和G命令 $ sed -e '/test/h' -e '$G example sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区,除非行被删除或者输出被取消,否则所有被处理的行都将打印屏幕上...awk,文件的每一行,由域分隔符分开的每一项称为一个域。通常,不指名-F域分隔符的情况下,默认的域分隔符是空格。 commands awk的命令非常多,因为它甚至可以算是一个编程语言。...printf函数,其用法和c语言中printf基本相似,可以格式化字符串,输出复杂,printf更加好用,代码更易懂。...NF 当前记录的字段数。 NR 当前记录数。 OFMT 数字的输出格式(默认值是%.6g)。 OFS 输出字段分隔符(默认值是一个空格)。 ORS 输出记录分隔符(默认值是一个换行符)。

    2.2K10

    生信人的自我修养:Linux 命令速查手册(全文引用)

    # 切换到上一级目录;一个.表示当前目录,两个..表示上一级目录 cd - # 切换到进入当前目录之前所在的目录 mkdir - 创建目录 mkdir dir...bash run.sh & disown -r # 从当前shell移除运行的作业,至此,可以关掉终端回家了 | - 管道 管道,将前一个命令的输出作为后一个命令的输入 command1 | command2...Awk 语言中,通常测试一个记录、字段或字符是否与一个正则表达式匹配,匹配返回 1,不匹配返回 0。...expr ~ /r/ # 评估expr是否与r匹配。匹配的意思是expr的一个子串是否正则表达式r定义的字符串集中。...NF - 当前行的列数 RS,行分隔符,默认是换行符 FS,列分隔符,默认是空格和制表符 ORS,输出行分隔符,默认为换行符 OFS,输出列分隔符,默认为空格 FILENAME,当前文件名 内置函数

    3.9K40

    Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)

    [^m]表明匹配不是m字符的内容。 [m-f]表示匹配m到f的内容,m可以是数字,可以字符。...处理,把当前处理的行存储临时缓冲区,称为“模式空间”(pattern space),接着用sed命令处理缓冲区的内容,处理完成后,把缓冲区的内容送往屏幕。...表示后面的命令对所有没有被选定的行发生作用。 示例:1!表明对文中所有行起作用,3!表示对文中第三行及以下行起作用 = 打印当前行号码。 # 把注释扩展到下一个换行符以前。...x\{m,n\} 重复字符x,至少m次,不多于n次,如:/0\{5,10\}/匹配5~10个0的行 3.7 脚本地址定界 / sed作为定界符使用,也可以使用任意的定界符:| / 定界符出现在样式内部...:匹配一个非换行符的任意字符 需用到命令:!: 表示后面的命令对所有没有被选定的行发生作用。

    9.3K21

    生信人的自我修养:Linux 命令速查手册

    # 切换到上一级目录;一个.表示当前目录,两个..表示上一级目录 cd - # 切换到进入当前目录之前所在的目录 mkdir - 创建目录 mkdir dir...bash run.sh & disown -r # 从当前shell移除运行的作业,至此,可以关掉终端回家了 | - 管道 管道,将前一个命令的输出作为后一个命令的输入 command1 | command2...Awk 语言中,通常测试一个记录、字段或字符是否与一个正则表达式匹配,匹配返回 1,不匹配返回 0。...expr ~ /r/ # 评估expr是否与r匹配。匹配的意思是expr的一个子串是否正则表达式r定义的字符串集中。...NF - 当前行的列数 RS,行分隔符,默认是换行符 FS,列分隔符,默认是空格和制表符 ORS,输出行分隔符,默认为换行符 OFS,输出列分隔符,默认为空格 FILENAME,当前文件名 内置函数

    7.4K22
    领券