我再次被修改了文字。我想改变大文本文件,如:
>hg19_ct_UserTrack_3545_691 range=chr1:8121498-8121502 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATGG
>hg19_ct_UserTrack_3545_690 range=chr1:8121587-8121591 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATAG
到
>chr1:8121498-8121502 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATGG
>chr1:8121587-8121591 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATAG
我一直在使用sed '/^>/s/[^ ]* />/'
删除第一部分(>hg19_ct_UserTrack_3545_690
),但我真的不知道如何删除range=
。我尝试了//
和grep
的各种组合,但没有快乐。
由于
答案 0 :(得分:1)
尝试各种shell命令=)
使用awk:
awk -F'range=' '/^>/{print ">" $2}' file
或sed:
sed '/^>/s/.*range=(.*)/>\1/' file
答案 1 :(得分:1)
试试这一行:
sed 's/[^=>]*=//' file
测试你的输入:
kent$ echo ">hg19_ct_UserTrack_3545_691 range=chr1:8121498-8121502 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATGG
>hg19_ct_UserTrack_3545_690 range=chr1:8121587-8121591 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATAG"|sed 's/[^=>]*=//'
>chr1:8121498-8121502 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATGG
>chr1:8121587-8121591 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATAG