免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1084 | 回复: 4
打印 上一主题 下一主题

[学习分享] 大神帮忙:将文件名加入到文件中的特定位置 [复制链接]

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-10-08 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-08-24 18:05 |只看该作者 |倒序浏览
本帖最后由 56836430 于 2015-08-24 18:07 编辑

有许多文件命名为:1.txt, 2.txt, 3.txt..... 10000.txt
文件的格式均为
>Ath|AT1G06290.1 pacid=19658332 transcript=AT1G06290.1 locus=AT1G06290 ID=AT1G06290.1.TAIR10 annot-version=TAIR10
-----------------------------------------------MSDNRALRRAHVL
ANHILQ--SNPPSSN---PS----LSRELCLQYSPPELNE-SYGFDVKEMRKLLDGHNVV
DRDWIYGLMMQSNLFNRKERGGKIFVSPDYNQTMEQQREITMKRIWYLLENGVFKGWLTE
TGPEAEL-RKLALLEVCGIYDHSVSIKVGVHFFLWGNAVKFFGTKRHHEKWLKNTEDYVV
KGCFAMTELGHGSNVRGIETVTTYDPKTEEFVINTPCESAQKYWIGGAANHATHTIVFSQ
>Ath|AT1G06310.1 pacid=19653225 transcript=AT1G06310.1 locus=AT1G06310 ID=AT1G06310.1.TAIR10 annot-version=TAIR10
-----------------------------------------------MSENVELRRAHIL
ANHILR--SPRPSSN---PS----LTPEVCFQYSPPELNE-SYGFEVKEMRKLLDGHNLE
ERDWLYGLMMQSNLFNPKQRGGQIFVSPDYNQTMEQQRQISMKRIFYLLEKGVFQGWLTE
TGPEAEL-KKFALYEVCGIYDYSLSAKLGVHFLLWGNAVKFFGTKRHHEKWLKDTEDYVV
KGCFAMTELGHGTNVRGIETVTTYDPTTEEFVINTPCESAQKYWIGEAANHANHAIVISQ
L
>lcl|Cyc_c38218_g1_i1_m.97294 unnamed protein product
---------------------------------------------MENSENRIARRTAIL
AAHFPN--SNTSNGI---SS----LHRSPCLRYYPPETASGKLSFDINAMRELMDGHNIE
DRDEIFKLIISSDVFCPRMVAGQVYVIPDYNKPMEHQREMTLKRILYLLEKGIFKGWLTG
TTIEQKM-RRFAIVECLGMYDHSLALKLGVHF-LWGDVLRSLGTKQHQEKFLRDSEEYIV
KGSFAMTELGHGSNVRGIETMATYDPSTQEFIINTPCETAQKYWIGGVVNHATHAIVFSQ

---------------------------------------------------------------------------------------------------------------
目的是想将文件名添加到每个文件的">"后面,并将以>开头的行空格后面的内容删掉。例如文件1.txt
>1|Ath|AT1G06290.1
-----------------------------------------------MSDNRALRRAHVL
ANHILQ--SNPPSSN---PS----LSRELCLQYSPPELNE-SYGFDVKEMRKLLDGHNVV
DRDWIYGLMMQSNLFNRKERGGKIFVSPDYNQTMEQQREITMKRIWYLLENGVFKGWLTE
TGPEAEL-RKLALLEVCGIYDHSVSIKVGVHFFLWGNAVKFFGTKRHHEKWLKNTEDYVV
KGCFAMTELGHGSNVRGIETVTTYDPKTEEFVINTPCESAQKYWIGGAANHATHTIVFSQ
>1|Ath|AT1G06310.1
-----------------------------------------------MSENVELRRAHIL
ANHILR--SPRPSSN---PS----LTPEVCFQYSPPELNE-SYGFEVKEMRKLLDGHNLE
ERDWLYGLMMQSNLFNPKQRGGQIFVSPDYNQTMEQQRQISMKRIFYLLEKGVFQGWLTE
TGPEAEL-KKFALYEVCGIYDYSLSAKLGVHFLLWGNAVKFFGTKRHHEKWLKDTEDYVV
KGCFAMTELGHGTNVRGIETVTTYDPTTEEFVINTPCESAQKYWIGEAANHANHAIVISQ
L
>1|lcl|Cyc_c38218_g1_i1_m.97294
---------------------------------------------MENSENRIARRTAIL
AAHFPN--SNTSNGI---SS----LHRSPCLRYYPPETASGKLSFDINAMRELMDGHNIE
DRDEIFKLIISSDVFCPRMVAGQVYVIPDYNKPMEHQREMTLKRILYLLEKGIFKGWLTG
TTIEQKM-RRFAIVECLGMYDHSLALKLGVHF-LWGDVLRSLGTKQHQEKFLRDSEEYIV
KGSFAMTELGHGSNVRGIETMATYDPSTQEFIINTPCETAQKYWIGGVVNHATHAIVFSQ

文件2.txt输出结果为:
>2|Ath|AT1G06290.1
-----------------------------------------------MSDNRALRRAHVL
ANHILQ--SNPPSSN---PS----LSRELCLQYSPPELNE-SYGFDVKEMRKLLDGHNVV
DRDWIYGLMMQSNLFNRKERGGKIFVSPDYNQTMEQQREITMKRIWYLLENGVFKGWLTE
TGPEAEL-RKLALLEVCGIYDHSVSIKVGVHFFLWGNAVKFFGTKRHHEKWLKNTEDYVV
KGCFAMTELGHGSNVRGIETVTTYDPKTEEFVINTPCESAQKYWIGGAANHATHTIVFSQ
>2|Ath|AT1G06310.1
-----------------------------------------------MSENVELRRAHIL
ANHILR--SPRPSSN---PS----LTPEVCFQYSPPELNE-SYGFEVKEMRKLLDGHNLE
ERDWLYGLMMQSNLFNPKQRGGQIFVSPDYNQTMEQQRQISMKRIFYLLEKGVFQGWLTE
TGPEAEL-KKFALYEVCGIYDYSLSAKLGVHFLLWGNAVKFFGTKRHHEKWLKDTEDYVV
KGCFAMTELGHGTNVRGIETVTTYDPTTEEFVINTPCESAQKYWIGEAANHANHAIVISQ
L
>2|lcl|Cyc_c38218_g1_i1_m.97294
---------------------------------------------MENSENRIARRTAIL
AAHFPN--SNTSNGI---SS----LHRSPCLRYYPPETASGKLSFDINAMRELMDGHNIE
DRDEIFKLIISSDVFCPRMVAGQVYVIPDYNKPMEHQREMTLKRILYLLEKGIFKGWLTG
TTIEQKM-RRFAIVECLGMYDHSLALKLGVHF-LWGDVLRSLGTKQHQEKFLRDSEEYIV
KGSFAMTELGHGSNVRGIETMATYDPSTQEFIINTPCETAQKYWIGGVVNHATHAIVFSQ
。。。。。。
求帮忙求帮忙!

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-07-13 22:20:00
2 [报告]
发表于 2015-08-24 22:25 |只看该作者
用python应该很容易搞定的吧

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-10-08 06:20:00
3 [报告]
发表于 2015-08-25 08:22 |只看该作者
要是会就不求助啦,谢谢哟~

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
4 [报告]
发表于 2015-08-25 10:52 |只看该作者
  1. #!/bin/bash
  2. for file in *.txt; do
  3.     FILE_NAME=${file%????}
  4.     sed -i -r "/^>/ s/^>([^ ]+) .*/>${FILE_NAME}\|\1/" $file
  5. done
复制代码

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-10-08 06:20:00
5 [报告]
发表于 2015-08-26 15:47 |只看该作者
再问一下,用perl怎么实现?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP