linux去掉特定的换行符、选出同名最长序列 5C

输入文件:a.txt

CP007439.1 Serratia plymuthica strain V4 genome
ATGGTCAGCACGATCCTTGGCCGCAAGCTTGGGATGAC
CGCACGGCTCCCGCAACCAGCGTCGCCCGGGTTCCATC
ATGTACGGTCACATGGGCGACGAGCGCGTGACGGTCAA
GCTCGTCAAGGGCGCTGTCCCCGGCGGCAAGAACGCTC
CP007439.1 Serratia plymuthica strain V4 genome
CGCCCGGTACAGCACCCTTAACCAGCAGCAGGTTGCGC
CGCTCGTCACCCAGGTGGCCAGCCATTTTCTTGCCTTT
AACGCGGTG
CP007439.1 Serratia plymuthica strain V4 genome
GAAGTTCCAGCGCTTTACAGTGCCGGCAAAACCTTT
CP002775.1 Serratia sp. AS13, complete genome
GAAGTTCCAGCGCTTTACAGTGCCGGCAAAACCTTT

CP007439.1 Serratia plymuthica strain V4 genome

ATGGTCAGCACGATCCTTGGCCGCAAGCTTGGGATGAC (该处换行符去除)
CGCACGGCTCCCGCAACCAGCGTCGCCCGGGTTCCATC (该处换行符去除)
ATGTACGGTCACATGGGCGACGAGCGCGTGACGGTCAA (该处换行符去除)
GCTCGTCAAGGGCGCTGTCCCCGGCGGCAAGAACGCTC (换行符留下)
CP007439.1 Serratia plymuthica strain V4 genome

CGCCCGGTACAGCACCCTTAACCAGCAGCAGGTTGCGC (该处换行符去除)
CGCTCGTCACCCAGGTGGCCAGCCATTTTCTTGCCTTT (该处换行符去除)
AACGCGGTG (换行符留下)
CP007439.1 Serratia plymuthica strain V4 genome

GAAGTTCCAGCGCTTTACAGTGCCGGCAAAACCTTT (换行符留下)
CP002775.1 Serratia sp. AS13, complete genome

GAAGTTCCAGCGCTTTACAGTGCCGGCAAAACCTTT (换行符留下)

要求:
1、上面4段序列中,有很多多余的换行符,需要去掉
2、去掉序列名相同的序列中较短的序列,序列名都以“>”开头,只留下最长的那一段

输出文件形式

CP007439.1 Serratia plymuthica strain V4 genome
ATGGTCAGCACGATCCTTGGCCGCAAGCTTGGGATGACCGCACGGCTCCCGCAACCAGCGTCGCCCGGGTTCCATCATGTACGGTCACATGGGCGACGAGCGCGTGACGGTCAAGCTCGTCAAGGGCGCTGTCCCCGGCGGCAAGAACGCTC
CP002775.1 Serratia sp. AS13, complete genome
GAAGTTCCAGCGCTTTACAGTGCCGGCAAAACCTTT

0

4个回答

Python

f = open('input.txt', 'r')
fo = open('output.txt', 'w')
for line in f:
line = line.rstrip('\n')
tl = len(line)
if line.startswith('CP'):
fo.write('\n')
fo.write(line)
fo.write('\n')
continue
fo.write(line)
if tl == 0:
continue
if tl < 38:
fo.write('\n')
f.close()
fo.close()

0
 f = open('input.txt', 'r')
fo = open('output.txt', 'w')
for line in f:
    line = line.rstrip('\n')
    tl = len(line)
    if line.startswith('CP'):
        fo.write('\n')
        fo.write(line)
        fo.write('\n')
        continue
    fo.write(line)
    if tl == 0:
        continue
    if tl < 38:
        fo.write('\n')
f.close()
fo.close()

0
weixin_42056387
weixin_42056387 我是小白,Python不会运行。。。python delete.python [ 4:13下午] File "delete.python", line 1 f = open('Atopobium_vaginae.txt', 'r') ^ IndentationError: unexpected indent
大约一年之前 回复

空格数要完全对齐,不能混用tab和空格

0

shell编程,匹配除去是我换行符,然后进行比较

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
perl实现去除fasta格式序列换行符
#!/usr/bin/perl -w use strict; unless (@ARGV==2){ die "Useage: perl $0 &lt;input.fa&gt; &lt;out.length&gt;\n"; } my($input,$output) = @ARGV; open INPUT,$input || die "error: can't open file: $input\n...
生信脚本练习(10)找出fasta文件中最长的转录本
>TRINITY_DN3760_c0_g2_i1 len=284 path= 这是一个一个fasta文件的示例。 这个文件中,TRINITY_DN3760_c0_g2是基因名。 没错,TRINITY_DN3760_c0_g2和TRINITY_DN3760_c1_g2是不同的基因。 而i1,i2是不同的转录本,现在要找出一个基因唯一最长的那个转录本,短的都不要。# 17.8.11 import
hdu 3998 最长上升子序列个数+网络流 (最多不相交合法路径数)
Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1886    Accepted Submission(s): 687 Problem Description There is a sequenc
[网络流24题] 06 最长递增子序列(最多不相交路径,最大流)
题目大意: 给定正整数序列x1,..., xn。 (1):计算其最长递增子序列的长度s(非降)。 (2):计算从给定的序列中最多可去除多少个长度为s的递增子序列。 (3):如果允许在取出的序列中多次使用x1和xn, 则从给定的序列中最多可以取出多少个长度为s的递增子序列。 思路分析: (1):用 Lis算法解决第一问,求出maxlen[i],表示以第i个元素为结尾的最长递增子序列的长度
awk 删除文本文件换行符
# awk 'NR == 1 {p = $0} NR > 1 {print p; p = $0} END{printf p} ' SerialNumber.dat > tmp.txt # cp tmp.txt SerialNumber.dat 管理员在2009年8月13日编辑了该文章文章。 -
最长的单调自增子序列(不一定连续)和
问题:给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续),如序列  1,-1,2,-3,4,-5,6,-7的最长递增子序列长度为4(1,2,4,6) 方法一: 最笨算法,复杂度为O(n*n),设一个辅助数组用来记录以对应元素结尾的最大递增子序列的长度(即lis[i]表示 以array[i]结尾的最大递增子序列长度为lis[i]),从头到尾扫一遍原数组,对于每个元素
LINUX下删除换行符^M
      在WINDOWS下编写的文本文件,换行符使用\r和\n两个字符表示,而在LINUX下使用\n表示,所以当WINDOWS下的文件上传到LINUX后,每一行会多出一个字符^M(也就是\r)。 将^M字符删除方法不少,这里列举两个:1)将a.txt里的^M去掉并写入b.txt,则使用如下指令cat a.txt | tr -d &quot;^M&quot; &amp;gt; b.txt2)使用vi编辑器替换,则如下操...
线段树区间合并--询问某段区间内最长连续上升子序列即最长上升子串
链接:https://www.nowcoder.com/acm/contest/158/B 来源:牛客网   最长区间 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 给你一个长度为 n 的序列 a ,求最长的连续的严格上升区间的长度。 同时会进行 m 次修改,给定 x , y ,...
Linux/Unix下去除window下换行符^M
原文链接:http://jie-hui-520.blog.163.com/blog/static/600743012010111323911518/ 2010-12-13 14:45:20|  分类: LINUX |  标签:linux  unix  ^m  换行   |字号 订阅 window下保存的文本文件,上传到Linux/Unix下后总会在末尾多了一个换行符^M,导致一
Python版求数组的最大连续区间
[本文出自天外归云的博客园] 题目:有一个数组,求他的最大(最长)连续区间(数字是连续的区间)。 我的解法,如下: class Finder(object): ''' 判断两个相邻的数字是否连续,若连续: 1.继续向后判断 2.记录连续长度 最后返回最大连续长度 ''' ...
VIM删除所有换行符
在命令行模式下,光标也移动到第一行,输入命令  :%s/\n//g 在以上命令中, s 是替换, / 是间隔符, \n 是换行负,即要替换的原串,  \n后面的//,是要指替换成的串,在这里表示无 两条删除命令的区别在于前面有无 % ,  有%则在全文中替换 后面的g,是在整行中替换,由于每行最多只有一个换行,所以g在这里没实际意义
最长不互质序列————代码与详解
最长不互质序列————代码与详解 【题目】 题目描述 现在有一个长度为n的序列,你需要从中选出一些数来,保持这些数在原来序列的相对位置组成一个新的序列,使得相邻的两个元素不互质。输出新序列的最长长度。 两个数不互质,满足它们的最大公约数大于1。 输入 第一行,一个整数n,表示原序列的长度。 第二行,n个数,表示序列中的元素。 输出 输出新序列的最长长度,数据保证答案至少为2。
SQLSERVER 筛选出数据包含特殊字符( 制表符、回车符、换行符)的字符型和text类型字段
1、首先拼接查询语句 -- 在查询出来的结果后面加上 ' null end as has_special_character ' select case when data_type like '%text%' then ' case when CAST('+column_name+' AS varchar(8000)) like ''%''+CHAR
[分治] 洛谷P1115 最大连续子段和(分治典例)
题目 题目描述 给出一段序列,选出其中连续且非空的一段使得这段和最大。 输入输出格式 输入格式: 输入文件maxsum1.in的第一行是一个正整数N,表示了序列的长度。 第2行包含N个绝对值不大于10000的整数A[i],描述了这段序列。 输出格式: 输入文件maxsum1.out仅包括1个整数,为最大的子段和是多少。子段的最小长度为1。 输入输出样例 输入样例#1: 复制 ...
求数组中最长的连续序列(Longest Consecutive Sequence )
给定一组数据 4,7,8,1,2,3 那么数组中的
Linux中去除Windows换行符
sed -e ‘s/^M//’ orig_file &amp;gt; new_file     其中^M是这样发生的:ctrl+v之后紧接着ctrl+m
KMP算法详解(与最长公共子序列)
一:在介绍KMP算法之前,先介绍一下BF算法 (1)BF算法(传统的匹配算法,也是最简单的算法)  BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。     (2)举例说明:     S:  abab
数组中的最长连续序列
import java.util.*; //数组中的最长连续序列 public class LongestSequence{ //最长的连续序列 public static int longestConsecutive(int[]arr) { if(arr==null||arr.length==0) { return 0; } int m
bjfuoj最长上升子序列和最长公共子序列(动态规划)
描述ben和mei在做一个项目。现在他们遇到了一个难题,需要你的帮助。问题可以抽象为,给定两个整型数串,求它们的最长公共子序列。最长公共子序列的定义是,一个数列 S ,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。输入输入包含多组测试数据,每组数据首先包含一个N和一个M,分别表示两个整型串的长度,接下来是两行数据,分别有N个和M个整数(...
shell下删除换行符
sed ':a;N;s/\n/ /g;ta' filename.dat 转自:http://blog.sina.com.cn/s/blog_5e77c61f0100m9zf.html
[C++]最长递增子序列的求法之一(学习)
测试代码#include "stdafx.h" #include <iostream> #include <cstdlib> #include <vector> #include <algorithm> using namespace std; /* array: int数组 length: 数组长度 pre: array同等长度的int数组 记录第i个结点的前驱 nIndex: 最大长度所在的下标
求最长不下降序列, 完全是代码
求最长不下降序列 求最长不下降序列 求最长不下降序列 求最长不下降序列
NOIP2004合唱队列(提高组T3)————单调队列,动态规划(最长上升序列,最长下降序列)
题解:本题主要考查单调队列,动态规划(最长上升序列,最长下降序列)。这个序列是一个中间高,两头底的序列,先解决从T1到Ti这一段单调递增的序列,再解决Ti到TK这一段单调递减的序列(注意数值的更新)。 代码如下: #include&amp;lt;iostream&amp;gt; #include&amp;lt;algorithm&amp;gt; using namespace std; int q(int x); int n,i...
访问系统命令行,字符串处理,去掉换行符"\n"
import os os.system("dir")
shell将换行符去掉
cat tmp.log 8907 8203 8107 8908 8204 8108 8909 8301 8205 [root@localhost ~]# awk 'BEGIN{ORS=" "}{print $0}' tmp.log  8907 8203 8107 8908 8204 8108 8909 8301
最长前缀
最长前缀
linux删换行
帮大S删除一个文档里面的n多换行符, 正则始终没学好,vi也不熟悉,搜索一下大概有下面这么几种: 1,vi或vim下 :%s/\n//g 不知道是不是我rp问题,反正这个命令替换不了 2,sed 's/\n//g' 还是不行,貌似sed就没有办法处理换行符 3,grep, grep貌似还没搞懂。。。。 4,tr tr -d '\n'是可以的 最后tr搞定 cat oldf
Shell中去掉文件中的换行符简单方法
文件中每行都以\n结尾,如果要去掉换行符,使用sed命令 [root@host ~]# sed -i 's/\n//g' FileName 或者使用tr命令 [root@host ~]# cat fileName | tr '\n' '' 或者其他命令,效果都不好,没达到目的,其实有一种简单的方法: [root@host ~]# cat FileName | xargs echo ...
Linux---删除vim中的^M换行符
需求 有时候从Windows转移至Linux下的文本文件,vim中每行行尾会有一个^M换行符,通过如下方式删除 命令tr -d "\015" < old_file.txt > new_file.txt
最长上升子序列(LIS)和最长下降子序列(LDS)
LIS和LDS模板: const int MAXN = 100005; int a[MAXN], dp[MAXN];//最长上升子序列 int LIS(int n) { int res = 0; for(int i = 0; i < n; ++i) { dp[i] = 1; for(int j = 0; j < i; ++j)
linux去除换行
   需要将原本换行的文本都合并为一行,因为文件太大,希望通过一个命令来解决,go之发现有好的结果,故记录下。      1:利用tr命令   cat file1 | tr -d '\n' &amp;gt; outfile       2: awk的直接拼接     cat file | awk '{{printf&quot;%s&quot;,$0}}' &amp;gt; outfile     参考: ...
Java 最长字符串
求出5个字符串中最长的字符串。每个字符串长度在100以内,且全为小写字母。 样例输入 one two three four five 样例输出 three 代码: import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc ...
调用shell命令 - 去除结尾的换行符
#!/usr/bin/python -u import os # 返回 shell命令的输出 def getCurtime(): return os.popen("date +'%Y-%m-%d %H:%M:%S'").read().strip('\n') # 返回 shell执行后的返回值 def returnVal(): return os.system("date +'%Y-%m-%
如何删除fgets(...)取到的字符串末尾的换行符?
char a[10]; fgets(a,sizeof(a),stdin); if(strlen(a)!=sizeof(a)-1) //需要考虑要读的数据行太长没读完的情况. a[strlen(a)-1]='\0'; char line[1024] = ""; fgets(line, 1024, stdin); if (line[strlen(line)-1] == '\n'
从文件中读取内容,并去掉换行符'\n'的一种简单方法
打开文件后,可以用readlines将每一行的内容读取到一个“列表”中, 获取列表中每个元素,利用字符串的strip('\n')去掉换行符 例如: lines = fd.readlines() for line in lines: line=line.strip('\n') 当然处理某行也可以, 例如: ... lines = fd.readlines() #第二行去换行符
windows和linux的换行符^M转换和删除
问题现象:Windows下的文本文件换行符是\r\n,Linux下的换行符是\n,在Linux下vim打开Windows的文本文件,在行尾会显示^M字符,影响配置文件的阅读,严重的会影响shell脚本的运行。问题确认:1:file filename可以提示文件中存在CRLF符号。2:cat -v filename可以显示文件中的全部^M字符。3:windows notepad打开文件,视图,显示全...
如何根据指定字符替换换行符
如何根据指定字符替换换行符
linux 如何删除文件中的空格和换行符号并保存到新文件中
tmp.txt为原文件名,aa.txt为目标文件名 删除空行,并保存到文件 sed ‘/^/d’ tmp.txt &amp;gt;aa.txt  grep -v ‘^/d’ tmp.txt &amp;gt;aa.txt grep -v ‘^’ tmp.txt &amp;gt;aa.txt awk ‘/./’ tmp.txt &amp;gt;aa.txt cat tmp.txt | sed ‘N;s/\n//g’&amp;gt;aa.txt cat t
linux文件查看与删除换行符
从Excel中复制粘贴了一行数字到文本中,没曾想每行后面都有一个换行符。在linux下很多命令操作都出错,令我一度怀疑是自己的电脑或者是系统出了Bug。结果师兄提醒说,你的文本可能有换行符,结果还真是~ 1. linux查找文本中是否存在换行符 cat -A filename.txt 以含有换行符的文件id.txt示例: $ cat -A id.txt 201303107^M$ 2013031...
sed删掉换行符
cat urfile | sed 'N;s/\n/ /'
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据培训时间最长 数据库选出课程及格率