设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
还是格式转换的问题
1
2
/ 2 页
下一页
返回列表
查看:
992
|
回复:
12
还是格式转换的问题
[复制链接]
photofox
photofox
当前离线
积分
72
IP卡
狗仔卡
发表于 2003-6-12 21:46:13
|
显示全部楼层
|
阅读模式
>1auh_A mol:nucleic length:30 Rev Binding Element
GGUGGGCGCAGCUUCGGCUGACGGUACACC
>1auh_B mol:protein-het length:18 Rev Peptide
TRQARRNRRRRWRERQRX
>1avj_ mol:protein length:161 Calmodulin-Type Tch2 Protein
MSSKNGVVRSCLGSMDDIKKVFQRFDKNGDGKISVDELKEVIRALSPTASPEETVTMMKQFDLDGNGFIDLDEFV
ALFQIGIGGGGNNRNDVSDLKEAFELYDLDGNGRISAKELHSVMKNLGEKCSVQDCKKMISKVDIDGDGCVNFDE
FKKMMSNGGGA
>1awk_ mol:protein length:764 Adenylyl Cyclase
KIYIQRHDNVSILFADIVGFTGLASQCTAQELVKLLNELFGKFDELATENHCRRIKILGDCYYCVSGLTQPKTDH
上面的以>开始的那行如果是1avj_这种类型,就保持不变,如果是1auh_B这种类型,就变成1auhB,shell该怎么实现啊?多谢
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-6-12 22:41:39
|
显示全部楼层
grep '1auh_B' filename|sed -n 's/1auh_B/1auhB/p'
回复
支持
反对
使用道具
举报
显身卡
photofox
photofox
当前离线
积分
72
IP卡
狗仔卡
楼主
|
发表于 2003-6-13 14:11:43
|
显示全部楼层
你那个只能替换1auh_B那一行啊,我那个文件有几万条这种数据该怎么办啊?
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-6-13 14:46:49
|
显示全部楼层
grep '1auh_B' filename|sed -n 's/1auh_B/1auhB/p
g
'
那个g,就是全局替换的意思
回复
支持
反对
使用道具
举报
显身卡
photofox
photofox
当前离线
积分
72
IP卡
狗仔卡
楼主
|
发表于 2003-6-13 15:16:47
|
显示全部楼层
好象还是不行,你试一下下面的数据,把
1EFM_
1POU_
2AT2A
1ERP_
1BAL_
1HPBP
2CBH_
1SIS_
1GATA
7I1B_
1CDB_
变成
1EFM_
1POU_
2AT2_A
1ERP_
1BAL_
1HPB_P
2CBH_
1SIS_
1GAT_A
7I1B_
1CDB_
实际上数据有几万行
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-6-13 15:20:19
|
显示全部楼层
我希望你还是先看看sed,awk,grep置顶的入门贴子吧~~,看明白啦,那渔就是你的
不管文件有多少行,
sed 's/aaa/bbb/g' urfile都可以办到,你要理解而不要照抄;)
回复
支持
反对
使用道具
举报
显身卡
photofox
photofox
当前离线
积分
72
IP卡
狗仔卡
楼主
|
发表于 2003-6-13 23:15:03
|
显示全部楼层
里面没看到有类似的功能啊?
sed 's/aaa/bbb/g' urfile确实可以把aaa替换为bbb,加个g表示全部替换,可我的文件里那个aaa各不相同,而bbb也随着变化啊,难道我要一个一个去替换??有没有可以定义一个模式,比如说[0-9,A-Z][0-9,A-Z][0-9,A-Z][0-9,A-Z][0-9,A-Z]替换为[0-9,a-z][0-9,a-z][0-9,a-z][0-9,a-z][_][0-9,A-Z]
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-6-15 11:43:44
|
显示全部楼层
你可以写个脚本文件,把shell中的参数传递到sed中处理;)如:
urscript aaa filename
#
sed s/${1}/你希望的字符/g $2
其中,${1}为要替换的模式,$2是文件名.
回复
支持
反对
使用道具
举报
显身卡
photofox
photofox
当前离线
积分
72
IP卡
狗仔卡
楼主
|
发表于 2003-6-15 14:25:39
|
显示全部楼层
可是我希望替换的字符和替换模式有关啊,我真的不知道怎么搞定,希望大家指个明路,我现在急着要处理那一大堆数据,下面里一个文件里的部分数据:
1EFM_
1POU_
2AT2A
1ERP_
1BAL_
1HPBP
2CBH_
1SIS_
1GATA
7I1B_
1CDB_
数据都像上面的格式,我希望在找到2AT2A这样格式的行时,在最后一个子母前插个_,而像2CBH_这样的格式的行保持不变
结果是:
1EFM_
1POU_
2AT2_A
1ERP_
1BAL_
1HPB_P
2CBH_
1SIS_
1GAT_A
7I1B_
1CDB_
有谁能给个具体的shell啊,bow
回复
支持
反对
使用道具
举报
显身卡
lucida
lucida
当前离线
积分
2492
IP卡
狗仔卡
发表于 2003-6-15 14:45:34
|
显示全部楼层
投机取巧的办法:做两次sed
你看看下面的就该明白了
$ sed -e 's/^..../&_/g' tempdata
1EFM__
1POU__
2AT2_A
1ERP__
1BAL__
1HPB_P
2CBH__
1SIS__
1GAT_A
7I1B__
1CDB__
fancyworld lucida $ sed -e 's/^..../&_/g' -e 's/__/_/g' tempdata
1EFM_
1POU_
2AT2_A
1ERP_
1BAL_
1HPB_P
2CBH_
1SIS_
1GAT_A
7I1B_
1CDB_
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
/ 2 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
计算机认证考试学习与经验交流
SuSE Linux
Ubuntu Linux 专题讨论
Linux 专业英文精品技术文档专题
Linux小型、嵌入式系统
服务器架设、应用、维护
Linux 基础讨论区(新手速成)
Gentoo Linux
Linux及计算机学科基础理论版
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表