1

我再次陷入修改文本的困境。我想更改大型文本文件,例如:

>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/[^ ]* />/'which 删除第一部分(>hg19_ct_UserTrack_3545_690),但我真的坚持如何删除range=. 我尝试了各种组合,//grep没有任何乐趣。

谢谢

4

2 回答 2

1

尝试这些不同的 shell 命令 =)

使用

awk -F'range=' '/^>/{print ">" $2}' file

或使用

 sed '/^>/s/.*range=(.*)/>\1/' file
于 2013-03-01T10:45:15.410 回答
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
于 2013-03-01T10:47:22.337 回答