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

如何在匹配后使用BSD / OS X sed删除X行

在匹配后使用BSD / OS X sed删除X行的方法如下:

  1. 首先,确保你的系统上安装了BSD / OS X sed。你可以通过在终端中运行以下命令来检查:sed --version如果输出中包含"FreeBSD"或"Darwin",则表示你的系统上安装了BSD / OS X sed。
  2. 使用以下命令来删除匹配行及其后的X行:sed -e '/pattern/{n;N;N;N;N;N;N;N;N;N;N;d;}' file.txt将"pattern"替换为你要匹配的模式,将"X"替换为你要删除的行数。将"file.txt"替换为你要操作的文件名。

例如,如果要删除匹配行及其后的3行,可以使用以下命令:

代码语言:txt
复制

sed -e '/pattern/{n;N;N;N;d;}' file.txt

代码语言:txt
复制

这个命令使用了花括号来定义一个命令块,其中包含了多个命令。首先,当匹配到模式时,它会执行"n"命令来读取下一行,然后使用"N"命令连续读取接下来的9行(总共10行)。最后,它使用"d"命令来删除这些行。

  1. 运行命令后,将会直接在终端中显示结果。如果你想将结果保存到一个新文件中,可以使用重定向操作符">",例如:sed -e '/pattern/{n;N;N;N;d;}' file.txt > new_file.txt

这将会将结果保存到名为"new_file.txt"的新文件中。

请注意,这个方法仅适用于BSD / OS X sed。在其他系统上,可能需要使用不同的命令或选项来实现相同的效果。

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

相关·内容

Sed 命令详解

但如果加上-n参数,则只有在脚本中使用p,被匹配才会被列出来,比如:sed -n '//p'(仅显示这一); -e 用于执行多个编辑命令,sed -e '1,3s/my/your...需要注意的是在 Mac OS X 系统上,a \的追加文本需要另起一写,: $ sed '1a \>add one' test.txt $ sed '1,$a \add one' test.txtthis...同a命令一样在 Mac OS X 系统上,c \后文本需要另起一写,: $ sed '$c \>add one' test.txt $ sed '4,$c \add one' test.txtthis...然后将匹配到的替换成正则表达式的第一部分(本例中相当于删除line部分),使用\1表示匹配到的第一部分,同样\2表示第二部分,\3表示第三部分,可以依次这样引用。...表示匹配成功是否执行命令,Address 也可以使用相对位置,: # 其中的+3表示后面连续3$ sed '/dog/,+3s/^/# /g' pets.txtThis is my cat my

97510
  • 【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战

    在终端输入vim SYM.sh编写一个简单的脚本程序如下: 在终端输入bash -x SYM.sh输出结果包括了注释和非注释,如下图 2.使用grep、sed和awk对脚本文件SYM.sh实现: (...运行结果为: ② sed:在终端输入命令sed -n '/^\s*#/p' SYM.sh,命令解释如下: sed:流编辑器。 -n:表示只输出匹配。...-v:表示显示不匹配,也就是去除匹配。 -E:表示使用扩展的正则表达式。 ^\s*($|#):正则表达式,表示匹配空行或以0个或多个空格开头,紧接着是#号的,并将其删除。.../^[[:space:]]*#/d:正则表达式,表示匹配以0个或多个空格开头,紧接着是#号的,并将其删除。 /^$/d:表示匹配空行,并将其删除。 SYM.sh:要搜索的文件名。...同时,我对如何在Linux环境下编写bash脚本有了全面的认识,包括基本规则、控制结构、变量定义、条件语句、循环语句和函数的使用,为我进行更复杂的脚本编程奠定了基础。

    16610

    sed 命令+正则表达式

    c 下一命令是编辑命令,使用多项编辑时加入此选项       f 如果正在调用sed脚本文件,使用此选项,此选项通知sed一个脚本文件支持所用的sed命令,           sed...x为一号,比如1     x,y     表示行号范围从x到y,2,5表示从第2到第5     /pattern/    查询包含模式的,/disk/或/[a-z]/     /pattern.../pattern/   查询包含两个模式的,/disk/disks/     /pattern/,x  在给定行号上查询包含模式的,/disk/,3     x,/pattern/  通过行号和模式查询匹配..., 3,/disk/     x,y!   ...:用于匹配除换行符之外的所有字符。   (说明:我们可以把\s和\S以及\w和\W看作互为逆运算)   下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。

    3.4K20

    Sed三剑客入门与进阶

    $ 匹配结束,:/sed$/匹配所有以sed结尾的。 . 匹配一个非换行符的任意字符,:/s.d/匹配s后接一个任意字符,最后是d。...* 匹配0个或多个字符,:/*sed/匹配所有模板是一个或多个空格紧跟sed。 [] 匹配一个指定范围内的字符,/[ss]ed/匹配sedSed。...\> 匹配单词的结束,/love\>/匹配包含以love结尾的单词的x\{m\} 重复字符x,m次,:/0\{5\}/匹配包含5个0的。...x\{m,\} 重复字符x,至少m次,:/0\{5,\}/匹配至少有5个0的x\{m,n\} 重复字符x,至少m次,不多于n次,:/0\{5,10\}/匹配5~10个0的。...d;s/.*=//' } WeiyiGeek.奇数与偶数打印 _总结_: sed 匹配是贪婪模式匹配到越多; 正则扩展命令sed之-r选项 描述:使用了该-r选择就能使用正则表达式的扩展语法,在写一些正则符号前无需添加

    3.1K10

    【linux命令讲解大全】081.sed:功能强大的流式文本编辑器

    # 匹配结束,:/sed/匹配所有以sed结尾的。 . # 匹配一个非换行符的任意字符,:/s.d/匹配s后接一个任意字符,最后是d。...* # 匹配0个或多个字符,:/*sed/匹配所有模板是一个或多个空格紧跟sed。 [] # 匹配一个指定范围内的字符,/[sS]ed/匹配sedSed。...> # 匹配单词的结束,/love>/匹配包含以love结尾的单词的x{m} # 重复字符x,m次,:/0{5}/匹配包含5个0的。...x{m,} # 重复字符x,至少m次,:/0{5,}/匹配至少有5个0的x{m,n} # 重复字符x,至少m次,不多于n次,:/0{5,10}/匹配5~10个0的。...: sed '2,$d' file 删除文件最后一sed '$d' file 删除文件中所有开头是test的sed '/^test/'d file 已匹配字符串标记& 正则表达式 \w+ 匹配每一个单词

    23610

    【数据处理】sed原理及使用举例(快速理解核心)

    * #匹配零或多个字符 :/*sed/匹配所有模板是一个或多个空格紧跟sed。 [] #匹配一个指定范围内的字符,/[Ss]ed/匹配sedSed。...\> #锚定单词的结束,/love\>/匹配包含以love结尾的单词的x\{m\} #重复字符x,m次,:/0\{5\}/匹配包含5个o的。...表示若匹配不到 D,d 模式空间,删除 模式空间没有回车符,D/d一样 D/d执行,都会跳到下一(不管模式空间是否有内容) 简单用法 #删除第N sed -i 'Nd' filename #删除第...addr2:匹配执行(开关关闭) 准确的理解:seq 5 | sed '1,2d;1,2d' 输出的应该是第4和第5,因为第二删除,第一个1,2d关闭 再读入第3时,匹配到第2个1,2d,...因为3>1,所以匹配成功,执行d删除第3 继续读入第4,发现2<4,匹配不成功,关闭,所以第4不做d操作 接着第5所有内容因为命令全部关闭,直接输出 cat >test.txt <<EOF

    3.1K546

    Sed..

    $ # 匹配结束,:/sed$/匹配所有以sed结尾的。 . # 匹配一个非换行符的任意字符,:/s.d/匹配s后接一个任意字符,最后是d。...* # 匹配0个或多个字符,:/*sed/匹配所有模板是一个或多个空格紧跟sed。 [] # 匹配一个指定范围内的字符,/[sS]ed/匹配sedSed。...\> # 匹配单词的结束,/love\>/匹配包含以love结尾的单词的x\{m\} # 重复字符x,m次,:/0\{5\}/匹配包含5个0的。...x\{m,\} # 重复字符x,至少m次,:/0\{5,\}/匹配至少有5个0的x\{m,n\} # 重复字符x,至少m次,不多于n次,:/0\{5,10\}/匹配5~10个0的。...,注意,正则表达式元字符不能使用这个命令: sed '1,10y/abcde/ABCDE/' file 退出:q命令 打印完第10,退出sed sed '10q' file 保持和获取:h命令和G命令

    1.6K20

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

    安装 sed 如果你使用的是 Linux、BSD 或 macOS,那么它们已经安装了 GNU 的或 BSDsed。这些是原始 sed 命令的独特重新实现。虽然它们很相似,但也有一些细微的差别。...本文已经在 Linux 和 NetBSD 版本上进行了测试,所以你可以使用你的计算机上找到的任何 sed,但是对于 BSD sed,你必须使用短选项(例如 -n 而不是 --quiet)。...因为它没有可视化模式,所以会创建一个 模式空间pattern space,这是一个内存空间,其中包含来自输入流的当前行(删除了尾部的任何换行符)。填充模式空间sed 将执行你的指令。...接下来的两与搜索文本(three)匹配,因此它既包含模式空间又包含保留空间。第三的保留空间没有变化,因此在模式空间(Line two)的末尾是保留空间(仍然是 Line three)。...用 sed 剪切和粘贴 现在你知道了如何将字符串从模式空间转到保留空间并再次返回,你可以设计一个 sed 脚本来复制、删除,然后在文档中粘贴一

    1.9K20

    【Linux篇】--sed的用法

    y 表示把一个字符翻译为另外的字符(但是不用于正则表达式) \1 子串匹配标记 & 已匹配字符串标记 4、sed元字符集 ^ 匹配开始,:/^sed/匹配所有以sed开头的。...$ 匹配结束,:/sed$/匹配所有以sed结尾的。 . 匹配一个非换行符的任意字符,:/s.d/匹配s后接一个任意字符,最后是d。...* 匹配0个或多个字符,:/*sed/匹配所有模板是一个或多个空格紧跟sed。 [] 匹配一个指定范围内的字符,/[ss]ed/匹配sedSed。...\> 匹配单词的结束,/love\>/匹配包含以love结尾的单词的x\{m\} 重复字符x,m次,:/0\{5\}/匹配包含5个0的。...x\{m,\} 重复字符x,至少m次,:/0\{5,\}/匹配至少有5个0的x\{m,n\} 重复字符x,至少m次,不多于n次,:/0\{5,10\}/匹配5~10个0的

    1.6K20

    LinuxShell命令sed

    # :注释该行 # 的所有内容。 & :代表替换命令中匹配到的模式。 $ :代表数据流中的最后一(也可直接用数字指定,用 x,y 指定第 x 到第 y )。...\( regexp \) :定义了替换模式中的子模式(之后可用 \x 来引用第 x匹配的子模式)。当 sed 使用了 ERE 引擎,子模式按照 ERE 中的规范为 ( ),不再需要转义。...r\ file :从 file 文件中读取内容并追加到模式空间匹配到的。...T [label] :替换命令未成功匹配替换跳转到 sed 命令脚本 label 处(若未指定 label 参数,则跳转到脚本结尾)。 c\ text :用 text 替代匹配到的。...举例 打印 XXX 文件中第 5 及其后的所有sed -n '5,$p' XXX 将 XXX 文件数据中的第 2 删除写入 YYY 文件: sed -n '2d; w YYY' XXX 将

    1.1K30

    文本处理三剑客之sed

    $ 匹配结束,:/sed$/匹配所有以sed结尾的。 . 匹配一个非换行符的任意字符,:/s.d/匹配s后接一个任意字符,最后是d。...* 匹配0个或多个字符,:/*sed/匹配所有模板是一个或多个空格紧跟sed。 [] 匹配一个指定范围内的字符,/[ss]ed/匹配sedSed。...\> 匹配单词的结束,/love\>/匹配包含以love结尾的单词的x\{m\} 重复字符x,m次,:/0\{5\}/匹配包含5个0的。...x\{m,\} 重复字符x,至少m次,:/0\{5,\}/匹配至少有5个0的x\{m,n\} 重复字符x,至少m次,不多于n次,:/0\{5,10\}/匹配5~10个0的。...~]# cat seq.txt |sed '/^$/d;G' 空行删除,每行加一个空行,即保证每行只有一个空行 [root@CentOs7 ~]# seq 10|sed '/^$/d;G' 1

    93520

    linux中sed命令总结

    $ # 匹配结束,:/sed$/匹配所有以sed结尾的。 . # 匹配一个非换行符的任意字符,:/s.d/匹配s后接一个任意字符,最后是d。...* # 匹配0个或多个字符,:/*sed/匹配所有模板是一个或多个空格紧跟sed。 [] # 匹配一个指定范围内的字符,/[sS]ed/匹配sedSed。...\> # 匹配单词的结束,/love\>/匹配包含以love结尾的单词的x\{m\} # 重复字符x,m次,:/0\{5\}/匹配包含5个0的。...x\{m,\} # 重复字符x,至少m次,:/0\{5,\}/匹配至少有5个0的x\{m,n\} # 重复字符x,至少m次,不多于n次,:/0\{5,10\}/匹配5~10个0的。...转变为大写,注意,正则表达式元字符不能使用这个命令: sed '1,10y/abcde/ABCDE/' file 退出:q命令 打印完第10,退出sed sed '10q' file 保持和获取:

    3.2K20

    常见linux命令介绍-sed

    sed命令 命令 说明 a\ 在当前行下面插入文本。 i\ 在当前行上面插入文本。 c\ 把选定的改为新的文本。 d 删除删除选择的。 D 删除模板块的第一。...\$ 匹配结束,:/sed$/匹配所有以sed结尾的。 . 匹配一个非换行符的任意字符,:/s.d/匹配s后接一个任意字符,最后是d。...* 匹配0个或多个字符,:/*sed/匹配所有模板是一个或多个空格紧跟sed。 [] 匹配一个指定范围内的字符,/[ss]ed/匹配sedSed。...x\{m\} 重复字符x,m次,:/0\{5\}/匹配包含5个0的x\{m,\} 重复字符x,至少m次,:/0\{5,\}/匹配至少有5个0的。...x\{m,n\} 重复字符x,至少m次,不多于n次,:/0\{5,10\}/匹配5~10个0的

    1.6K10

    Linux sed 命令的使用

    在当前行下面插入文本 i \ 在当前行上面插入文本 c\ 将选定的,改为新的文本 D 删除模板块的第一 d 删除选择的 g 获取缓冲区的内容,并替换当前模板块中的文本 G 。。。。。。。。...$ 匹配结束,:/sed$/匹配所有以sed结尾的。 . 匹配一个非换行符的任意字符,:/s.d/匹配s后接一个任意字符,最后是d。...* 匹配0个或多个字符,:/*sed/匹配所有模板是一个或多个空格紧跟sed。 [] 匹配一个指定范围内的字符,/[ss]ed/匹配sedSed。...\/匹配包含以love结尾的单词的x\{m\} 重复字符x,m次,:/0\{5\}/匹配包含5个0的。...x\{m,\} 重复字符x,至少m次,:/0\{5,\}/匹配至少有5个0的x\{m,n\} 重复字符x,至少m次,不多于n次,:/0\{5,10\}/匹配5~10个0的

    3.1K100

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

    下载我们的免费 sed 备忘录 安装 sed 如果你使用的是 Linux、BSD 或 macOS,那么它们已经安装了 GNU 的或 BSDsed。这些是原始 sed 命令的独特重新实现。...本文已经在 Linux 和 NetBSD 版本上进行了测试,所以你可以使用你的计算机上找到的任何 sed,但是对于 BSD sed,你必须使用短选项(例如 -n 而不是 --quiet)。...因为它没有可视化模式,所以会创建一个 模式空间(pattern space),这是一个内存空间,其中包含来自输入流的当前行(删除了尾部的任何换行符)。填充模式空间sed 将执行你的指令。...接下来的两与搜索文本(three)匹配,因此它既包含模式空间又包含保留空间。第三的保留空间没有变化,因此在模式空间(Line two)的末尾是保留空间(仍然是 Line three)。...用 sed 剪切和粘贴 现在你知道了如何将字符串从模式空间转到保留空间并再次返回,你可以设计一个 sed 脚本来复制、删除,然后在文档中粘贴一

    1.7K20

    Shell 编程日记

    // 匹配到全文替换 sed '2s/str_old/str_new' file // 按匹配替换:匹配第二内容,并替换 sed '2,3s/str_old/str_new' file // 从第二开始匹配...,到第三结束,并替换 sed '2,$s/str_old/str_new' file // 从第二开始全文匹配,并替换 // 删除操作 sed '5d' file // 删除文件 file...第 5 行内容 sed '2,7d' file // 删除文件 file 第 2~7 行内容 sed '7,$d' file // 删除文件 file 第 7 以后所有的 // 插入操作,如果使用变量...,请使用双引号 sed -i "Line i str" file // 在 Line行前插入 str(新),i 前可以加数字(3i)表示第几行前插入 sed -i 'Line a str" file...// 在 Line插入 str(新),a 前可以加数字(3a)表示第几行插入 // 追加操作 ---- Shell 小技巧/样例 跳出循环语句 // 跳出当前循环 break // 跳出指定循环

    20320

    sed命令工作原理及命令备忘

    所谓非交互式,是指使用sed只能在命令行下输入编辑命令来编辑文本,然后在屏幕上查看输出;而所谓流编辑器,是指sed每次只从文件(或输入)读入一,然后对该行进行指定的处理,并将结果输出到屏幕(除非取消了屏幕输出又没有显式地使用打印命令...表示匹配成功是否执行命令 cmd 要执行的命令。...{/This/{/fish/d}}命令,这是个嵌套命令,意思是先匹配/This/,匹配成功的再尝试匹配/fish/,如果又匹配成功,则删除该行。...,如果匹配成功,则删除该行,否则再尝试匹配/fish/,如果匹配成功,则删除该行。...附上sed常用命令及中文解释 PS MAC OSX里记得需要使用brew install gnu-sed安装GNU版的sed,然后使用gsed, 自带的BSD版本sed功能实在弱了点。

    99090

    Sed 文本编辑器

    安装 如果你使用的是 Linux、BSD 或 macOS,那么你已经安装了 GNU 或 BSD 版的 sed。这是两个不同的原始 sed 命令的重新实现,虽然它们很相似,但也有一些小的区别。...因为 sed 在处理的默认操作也是打印一到 标准输出 ,这样做的效果就是重复第一: $ sed '1p' example.txt hello hello world This is line three...d 用于删除 d 指令删除模式空间: $ sed '$d' example.txt hello world This is line three. $ sed '1d' example.txt world...g(应该是指 全局 )标志告诉 s 对上找到的所有匹配项进行替换,而不仅仅是第一个匹配项: $ sed 's/is/\U&/g' example.txt hello world ThIS IS line...例如,在写完这篇文章的初稿,我用 sed 来规范 “sed” 的大小写,而这是我可能永远也不会再做的任务。 你可以向 sed 发出一系列不同的命令,用分号(;)分开。

    1.1K00
    领券