Chinaunix

标题: 如何合并文件中的行 [打印本页]

作者: lry198008    时间: 2008-11-29 16:45
标题: 如何合并文件中的行
例如:
Conting1
ACGTAGTCAGTACGATGC
AGTCGAGTGACGTGAGCG
ACGTACTAGCTAGCTATC
Contig2
ATGCTAGCTAGCTAGCTT
TTCGATCGTAGCTAGCGT
CTAGCTAGCTAGCTATCG
用什么命令将序列合并成一行,不要空格:
Conting1
ACGTAGTCAGTACGATGCAGTCGAGTGACGTGAGCGACGTACTAGCTAGCTATC
Contig2
ATGCTAGCTAGCTAGCTTTTCGATCGTAGCTAGCGTCTAGCTAGCTAGCTATCG
作者: walkerxk    时间: 2008-11-29 16:57
cat Conting1|tr -d '\n' >Conting11
cat Contig2|tr -d '\n' >Contig21
linux板块回复你了,不过那边你没说清楚。
作者: david993    时间: 2008-11-29 17:15
不知道直接把\n替换掉,行不行。
作者: walkerxk    时间: 2008-11-29 17:20
对了,如果是windows下的文本的话,还要一步:
cat Conting1|tr -d '\n'|tr -d '\r' >Conting11
作者: walkerxk    时间: 2008-11-29 17:28
如果要保留最后一个换行:sed -i ':a;N;s,\n,,;ba' Conting1而且这个是直接修改。
同样,windows的话要加一条sed -i 's,\r,,;:a;N;s,\n,,;ba' Conting1
作者: zhangshebao    时间: 2008-11-29 17:36
四行变二行,第1行复制,后3行合并?
awk 'NR%4<=1{printf("%s\n", $0)}
NR%4>=2{printf("%s", $0)}
'
作者: walkerxk    时间: 2008-11-29 17:48
原来理解错误,呵呵,sed '2{N;s,\n,,;N;s,\n,,};6{N;s,\n,,;N;s,\n,,};'
好像麻烦了点,而且多行的话有点麻烦。
改进版本:sed '2~4{N;s,\n,,;N;s,\n,,}'
继续改进中。

[ 本帖最后由 walkerxk 于 2008-11-29 17:51 编辑 ]
作者: xwmhmily    时间: 2008-11-29 20:20
原帖由 walkerxk 于 2008-11-29 16:57 发表
cat Conting1|tr -d '\n' >Conting11
cat Contig2|tr -d '\n' >Contig21
linux板块回复你了,不过那边你没说清楚。


这样最简单明了
作者: ukyo502    时间: 2008-11-29 20:53
cat Conting1|sed -e ':a;1!N;s/\n//;t a'
作者: blackold    时间: 2008-11-30 12:58
标题: 回复 #1 lry198008 的帖子
Conting1也是文件的内容吧,如果行数固定用paste;否则用awk, sed.




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2