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

awk与sed:关于多行的样本

sed默认单行模式。一次处理一行,执行时发现,就算我们把换行符去掉了。sed命令结束后。还是将它当成完整的一行输出(也就是说,应该是自己主动又加上换行符了) 2. 有一位网友。...认为其它答案太复杂,给出了以下的方法 sed ‘N;s/\n//g’ 这个答案使用了sed多行模式,但应该是无法实现楼主的目的的。...能够看出,sed 的N命令把第二行接到第一行后面,把第四行接到第三行后面,没有考虑到我们目标中:仅仅有非90结尾的才把下一行附加上来。...sed -e '/^/{:loop /90$/!{N;b loop};s/\n//g}' test.txt > t2.txt 改一下好理解一点就是 sed '{:myloop /90$/!...N表示多行模式,b表示分支(相当于goto) 这样就好理解了。sed会读取一行内容,假设这一行不是以90结尾。/90$/! 就为真,进入 {N;b myloop}。 N就进入了多行模式。

62610
您找到你想要的搜索结果了吗?
是的
没有找到

Linux 三剑客(grep awk sed)常用操作笔记

所谓的三剑客,其实就是 grep awk sed 三个命令,在 linux 操作中,特别是关于文本的查找和修改,这三条命令可谓是各显神通。...,支持多行) 删除匹配行 三个命令的一般性作用: grep:基于正则表达式查找满足条件的行 awk:根据定位到的数据行处理其中的分段,也就是切片 sed:根据定位到的数据行修改数据 sed 命令常用操作...sed 命令的匹配是以行为单位的,这个概念很重要。...bookbookbookbook name=jack ip=127.0.0.1 url=https://abc.xxxxx.com xyz 1234567 lmn bookbook 可以看到上面首先将匹配项使用正则拆分成了...name=jack ip=127.0.0.1 url=https://abc.xxxxx.com xyz showowof3442 lmn goodgood 替换匹配行整行内容(将匹配的整行内容替换,支持多行

90810

使用 shell 脚本拼接 srt 字幕文件 (srtcat)

对于文稿中一些比较长的行,后台会自动拆分为多个字幕段落。 srt 文件拼接 下面将拆分后的音频和字幕导入 B 站云剪辑中。...项目地址:https://github.com/goodpaperman/srtcat 这个工具只包含一个 shell 脚本 srtcat.sh,230 多行,比较好读,这里不逐行解说了,只说明一下重点功能的方案选型...拆分 形如 hh:mm:ss,xxx 格式的时间,首先需要从字符串提取时、分、秒、毫秒四个部分,这部分主要想说一下拆分时间字符串的三种方案。...横评 将拆分和去零结合起来,有以下几种搭配: $((var:0:2)) + sed ((var:0:2)) + ((1 awk+eval IFS + sed IFS + ((1var-100)) 由于...下面做个试验,选择三个测试文件,总计 500 多行: > wc -l 220808* 211 220808-114030.srt 183 220808-114613.srt 135 220808

2.9K10

sed 使用教程 - 通读篇(30分钟入门系列)

简介 sed使用及常见参数 sed使用例子积累 修改: sed基本语法和操作原理 和awk一样是个堪称文本处理神奇,本篇主要总结下sed的运行原理,和我们日常工作中90%的运用场景,难的需求和奇葩需求需要根据这些简单原理可以自己去挖掘...name is adam 首先命令模块就是 s/This/That/g , 用过 vim替换的一定会感觉到很熟悉,也大致会猜到将 以行为单位处理,将文本中每行出现的 “This” 换成 “That”,我们先拆分下命令格式...的多行处理功能 前面所看到的sed编辑器命令都是针对单行数据执行操作的,在sed编辑器读取数据流时,它会基于换行符的位置将数据分成行,让后再每行中重复的执行脚本命令。...除此之外sed也提供了三种可以多行处理的功能; 1....输出多行中的第一行 P P命令用于输出N命令创建的多行文本的模式空间中的第一行,也就是说读进来两行,仅输出第一行。

4.1K240

(30)字符截取命令sed

sed命令 sed是一种几乎包括在所有UNIX 平台(包括 Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。...②-e:允许对输入数据应用多条sed命令编辑 ③-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出 动作: ①a\:追加,当前行后添加一行或多行。...添加多行时,除最后一行外,每行末尾需要用“\”代表数据未完结。 ②c\:行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“\”代表数据未完结。...③i\:插入,在当期行前插入一行或多行。插入多行时,除最后一行外,每行末尾需要用“\”代表数据未完结。 ④d:删除,删除指定的行。 ⑤p:打印,输出指定的行。...i\"插入,在当期行前插入一行或多行。插入多行时,除最后一行外,每行末尾需要用“\”代表数据未完结。 本例为在第二行前插入"test\666"(用法同a\) ?

1.4K10

Sed三剑客入门与进阶

='/love/d' file #或者采用一条sed语句执行多条命令 (以 ; 来分割) sed 's/test/check/;/love/d' file #示例2.指定单行或者多行不显示 sed...$ sed -f sed.script test.txt 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 ---- 0x03 增删改查命令 单行插入和多行插入 #头部插入(行上):i.../单行) ############ #将text.txt文本的第二行替换成为"second insert txt" (支持多行和单行替换) $ sed '2c second insert \n there...p' text.txt 模拟:wc -l命令 #统计文件中的行数 sed -n "$=" /etc/passwd 内容中的换行符替换 描述:sed是可以处理多行数据的,N是把下一行加入到当前的hold...ba;s/\n/ /g' file.txt ## 实际可以将上面的命令拆分描述,就比较简单多了; # 多次匹配替换 sed -i -e 's/12_/abc/g' -e 's/aa_/aa_3rth

3K10

生物信息重要的文本处理命令(实例命令及解释)

linux文本处理命令是一类对文件进行操作的命令,通过使用文本处理命令,可以轻松的对文件进行排序,拆分,合并等操作,熟练掌握文本处理命令,在生物信息文本处理中,有十分重要的意义。...命令 sed是一个强大的按行处理的命令,常用的命令如下: 命令 注释 sed -n 'p' filename //输出所有行,等同于cat afile sed -n '3p' filename //输出第...3行 sed -n '3l' filename //输出第3行,其中非打印字符以ASCII码表示 sed -n '3,5p' filename //输出第3~5行 sed -n 'p;n' filename...=用来表示行号 sed -n '/^install/p' filename //输出以install开头的行 sed -n '/noarch$/p' filename //输出以noarch结尾的行 sed...Xargs命令常跟管道连用,处理管道中的数据流 命令 解释 cat test.txt | xargs 多行输入单行输出 cat test.txt | xargs -n3 -n选项多行输出 echo "nameXnameXnameXname

1.2K10

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

本章介绍一些sed编辑器提供的高级特性。 21.1 多行命令 按照之前的知识,所有的sed编辑器命令都是针对单行数据执行操作的。...在sed编辑器读取数据流时,它会基于换行符的位置将数据分成行,一次处理一行数据。 有时会需要对跨多行的数据执行特定操作。...解决方案,sed编辑器包含了三个可用来处理多行文本的特殊命令: N:将数据流中的下一行加进来创建一个多行组(multiline group)来处理 D:删除多行组中的一行 P:打印多行组中的一行 21.1.1...合并文本行(多行版本的next) 单行next命令会将数据流中的下一文本行移动到sed编辑器的工作空间(称为模式空间) 多行版本的next命令(N)会将下一行添加到模式空间中已有的文本后。...21.1.2 多行删除命令 单行删除命令d 多行删除命令D 1.

1.6K90

Linux常用命令 sed 使用简述

Linux/UNIX中的sed命令是Stream Editor文本流编辑的缩写,它能同时处理多个文件多行的内容,比如文搜索,查找和替换,插入或删除。...但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来; -e 直接在指令列模式上进行 sed 的动作编辑; -f 直接将 sed 的动作写在一个文件内,...常用的命令有以下几种: a \: append即追加字符串, a \的后面跟上字符串s(多行字符串可以用\n分隔),则会在当前选择的行的后面都加上字符串s; c \: 取代/替换字符串...,c \后面跟上字符串s(多行字符串可以用\n分隔),则会将当前选中的行替换成字符串s; d: delete即删除,该命令会将当前选中的行删除; i \: insert即插入字符串...,i \后面跟上字符串s(多行字符串可以用\n分隔),则会在当前选中的行的前面都插入字符串s; p: print即打印,该命令会打印当前选择的行到屏幕上; s: 替换,通常s命令的用法是这样的

1.2K20

Linux学习----文本三剑客——sed(马哥教育原创)

在Linux的文本文件中文本存储都是一行,显示时表现的多行其实都是因为有换行符的存在,例如:文本是:abc$def$ghi 显示出来就是三行了。...\n表示换行符 i \text:插入text,支持\n实现多行插入; c \text:用text替换匹配到的行;sed ‘/5,7/c \new txt’ #五到七行都替换成一个new txt sed...把保持空间和模式空间中的进行交换; n:读取匹配到的行的下一行至模式空间;(会覆盖模式空间中的原有内容); N:读取匹配到的行的下一行至模式空间,追加在模式空间中原有内容的后面; d:删除模式空间中的内容; D:删除多行模式空间中的首行...在Linux的文本文件中文本存储都是一行,显示时表现的多行其实都是因为有换行符的存在,例如:文本是:abc$def$ghi 显示出来就是三行了。...’ #\n表示换行符 i \text:插入text,支持\n实现多行插入; c \text:用text替换匹配到的行;sed ‘/5,7/c \new txt’ #五到七行都替换成一个new txt

1.4K30

linux学习之sed

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法 sed命令行格式为: sed [-nefri...-e∶直接在指令列模式上进行 sed 的动作编辑;         -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;        ...\屏蔽特殊含义   增加一行或多行字符串      [root@localhost ruby]# cat ab      Hello!     ...#第一行后增加多行,使用换行符\n      Hello!      ...end   代替一行或多行      [root@localhost ruby] # sed '1c Hi' ab                #第一行代替为Hi      Hi      ruby

1.1K20

Linux三板斧之:sed

sed 的基本语法是: sed option 'action' filename 这意味着对 filename 文件执行 action 所指定的编辑操作。...sed的常用选项与动作 sed有许多选项与操作来控制编辑动作: -i: 直接修改文件内容,而不是输出到屏幕 -n: 不输出未修改的行,只输出被sed修改过的行 a: 在指定行的下一行添加一行或多行文本...d: 删除指定行 s: 查找并替换,类似于vi中的替换功能 y: 将字符翻译成其他字符 p: 打印指定行 i: 在指定行前插入一行或多行文本 c: 替换指定行 g: 全局替换,即不止替换每一行的第一个模式匹配...结合正则表达式,sed 可以轻松编辑复杂的文本文件。sed 常用于批量修改文件内容、过滤与格式化文本等。...使用 sed 编辑过的文件,内容和格式看上去就像手工编辑过的一样,这使得 sed 成为自动化文本处理不可多得的工具。 总之,sed 是 Linux 环境下必不可少的命令之一。

13020
领券