首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用sed删除两个字符之间的行

使用sed删除两个字符之间的行
EN

Stack Overflow用户
提问于 2021-02-24 11:56:42
回答 1查看 46关注 0票数 1

我有多个txt格式的数据集,其中有一个可预测的内容。我正在尝试删除第一组行。第一行从>*chromosome开始,我想删除>*plasmid之前的所有内容。我可以告诉它删除>中的所有内容,直到它再次遇到它,或者删除第一个>和第二个>之间的所有内容。我一直在尝试这样的东西:

代码语言:javascript
运行
AI代码解释
复制
sed -i.bak '/>/,/^\>*$/{d}' file.txt

这不起作用,我找到的原始代码是:

代码语言:javascript
运行
AI代码解释
复制
sed -i.bak '/>/,/^\s*$/{d}' file.txt
EN

回答 1

Stack Overflow用户

发布于 2021-02-24 15:51:50

使用此Perl一行程序:

代码语言:javascript
运行
AI代码解释
复制
perl -0777 -pe 's{^>chromosome.*(?=^>plasmid)}{}sm' in.fasta

示例:

代码语言:javascript
运行
AI代码解释
复制
# Create example input file:

cat > in.fasta <<EOF
>foo
TCGA
>chromosome
ACGT
>plasmid
CGTA
EOF

perl -0777 -pe 's{^>chromosome.*(?=^>plasmid)}{}sm' in.fasta > out.fasta

out.fasta格式输出

代码语言:javascript
运行
AI代码解释
复制
>foo
TCGA
>plasmid
CGTA

Perl单行程序使用以下命令行标志:

-e:告诉Perl查找内联代码,而不是文件中的代码。

-p:每次循环一行输入,默认情况下将其赋给$_。在每次循环迭代后添加print $_

-0777:对整个文件进行Slurp。

正则表达式使用以下修饰符:

/m:允许多行匹配。

/s:允许.匹配换行符。

^>chromosome.*(?=^>plasmid):匹配>chromosome开始的正则表达式从行首开始,后跟0个或更多字符,并在(但不包括)与行首的>plasmid匹配时结束。表达式(?=PATTERN)是长度为零的正向先行。

另请参阅:

perldoc perlrun: how to execute the Perl interpreter: command line switches

perldoc perlre: Perl regular expressions (regexes)

perldoc perlre: Perl regular expressions (regexes): Quantifiers; Character Classes and other Special Escapes; Assertions; Capture groups

perldoc perlrequick: Perl regular expressions quick start

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66350421

复制
相关文章
linux SED替换指定两字符行之间的内容
[root@localhost wzcs]# cat a asf <123> defasf fsdsas <ds123> </%123> <^123> dffa <1234> <a123> </123> dffadsfs afdasffds [root@localhost wzcs]# sed '/^<123>$/,/^<\/123>$/{/^<123>$/b;/^<\/123>$/b;s/.*/www.liezi.net/}' a asf <123> www.liezi.net www.liezi
葫芦
2019/04/17
6.7K0
sed 删除命令
删除/etc/passwd中的不能登录的用户(筛选条件:/sbin/nologin)
用户1217611
2022/05/06
1.3K0
sed 删除命令
ExcelVBA删除包含指定字符所在的行
哆哆Excel
2023/09/09
3730
ExcelVBA删除包含指定字符所在的行
sed命令在文本每行,行尾或行首添加字符
用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file
章工运维
2023/05/19
3.9K0
sed命令在文本每行,行尾或行首添加字符
ExceVBA删除指定字符所在的行_优化版
哆哆Excel
2023/09/09
4660
ExceVBA删除指定字符所在的行_优化版
sed提取两个关键字之间的内容_python提取文本指定内容
如果上述代码是列表页中要获取的部分代码,现在要获取 所有列表页 的tbody标签中每个tr标签下 除第三、四个td标签(这2个中可能有数据,也可能无数据) 外的其他4个td标签中的数据,该如何获取?
全栈程序员站长
2022/10/04
1.7K0
leetcode之两个相同字符之间的最长子字符串
这里用HashMap记录一下每个字符的下标,在遍历字符串的时候,遇到相同的字符的时候,计算前后下标的差来得出子字符串的长度,然后通过对比记录最长的子字符串的长度。
code4it
2020/10/27
1.6K0
leetcode之两个相同字符之间的最长子字符串
leetcode之两个相同字符之间的最长子字符串
这里用HashMap记录一下每个字符的下标,在遍历字符串的时候,遇到相同的字符的时候,计算前后下标的差来得出子字符串的长度,然后通过对比记录最长的子字符串的长度。
code4it
2020/11/02
2.2K0
LeetCode 1624. 两个相同字符之间的最长子字符串
给你一个字符串 s,请你返回 两个相同字符之间的最长子字符串的长度 ,计算长度时不含这两个字符。如果不存在这样的子字符串,返回 -1 。
Michael阿明
2021/02/19
1.4K0
ExcelVBA删除指定列含有指定字符的所在的行
2.用SpecialCells(xlCellTypeConstants, 16)快速定位
哆哆Excel
2023/09/09
1.1K0
ExcelVBA删除指定列含有指定字符的所在的行
使用awk和sed获取文件奇偶数行的方法总结
测试文件test.file [root@localhost ~]# cat test.file 111111111111111 222222222222222 333333333333333 444444444444444 555555555555555 666666666666666 777777777777777 888888888888888 999999999999999 1010101010101010 1) 打印奇数行的方法 [root@localhost ~]# sed -n '1~2p' t
洗尽了浮华
2019/05/25
1.4K0
sed插入和附加新行
sed可以在文本的某一行前或者后插入一行或者多行文本。这涉及到insert和append两个命令。
生信编程日常
2020/07/30
8.8K0
如何使用 sed 替换文件中的字符串?
在 Linux 系统中,sed 是一个非常有用的文本处理工具,它可以用于在文件中进行字符串替换操作。sed 是流编辑器(stream editor)的缩写,它可以对文本进行逐行处理,包括查找和替换特定的字符串。本文将详细介绍如何使用 sed 命令在文件中进行字符串替换操作。
网络技术联盟站
2023/06/09
5.6K0
如何使用 sed 替换文件中的字符串?
(30)字符截取命令sed
sed是一种几乎包括在所有UNIX 平台(包括 Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。
生信real
2020/09/02
1.5K0
如何使用Java计算两个日期之间的天数
在Java中,可以通过多种方式计算两个日期之间的天数。以下将从使用Java 8的日期和时间API、使用Calendar类和使用Date类这三个角度进行详细介绍。
很酷的站长
2023/09/24
5.2K0
如何使用Java计算两个日期之间的天数
python删除行_python 删除文件中指定行
代码适用情况:xml文件,循环出现某几行,根据这几行中的某个字段删掉这几行这段代码的作用删除jenkins中config.xml中在自动生成pipline报错的时的回滚 start = ‘
全栈程序员站长
2022/09/02
3.8K0
583. 两个字符串的删除操作
给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。 示例: 输入: "sea", "eat" 输出: 2 解释: 第一步将"sea"变为"ea",第二步将"eat"变为"ea" 给定单词的长度不超过500。 给定单词中的字符只含有小写字母。 class Solution { public int minDistance(String word1, String word2) {
CaesarChang张旭
2021/06/29
7560
动态规划:两个字符串的删除操作
题目链接:https://leetcode-cn.com/problems/delete-operation-for-two-strings/
代码随想录
2021/04/07
8590
动态规划:两个字符串的删除操作
点击加载更多

相似问题

使用sed删除特定字符之间的字符

145

使用sed删除两个匹配模式之间的所有行

61

SED删除两个模式匹配之间的行

50

使用sed删除行中的字符

12

两个特定字符之间的Sed删除失败

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文