Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 字符串的拆分头_Perl_Awk_Sed - Fatal编程技术网

Perl 字符串的拆分头

Perl 字符串的拆分头,perl,awk,sed,Perl,Awk,Sed,我想重新格式化下面的行。请参阅输入示例和所需输出。我一直在胡闹,没有找到正确的解决办法 输入: >1-672762 TGAGGTAGTAGGTTGTATGGTT >2-240457 TGAGGTAGTAGGTTGTGTGGTT >3-130231 TAGCAGCACGTAAATATTGGCG >4-116485 TGAGGTAGTAGGTTGTATAGTT 输出(需要用制表符分隔): 与: 输出: TGAGGTAGTAGGTTGTATGGTT 672762 TGA

我想重新格式化下面的行。请参阅输入示例和所需输出。我一直在胡闹,没有找到正确的解决办法

输入:

>1-672762
TGAGGTAGTAGGTTGTATGGTT
>2-240457
TGAGGTAGTAGGTTGTGTGGTT
>3-130231
TAGCAGCACGTAAATATTGGCG
>4-116485
TGAGGTAGTAGGTTGTATAGTT
输出(需要用制表符分隔):

与:

输出:

TGAGGTAGTAGGTTGTATGGTT    672762
TGAGGTAGTAGGTTGTGTGGTT    240457
TAGCAGCACGTAAATATTGGCG    130231
TGAGGTAGTAGGTTGTATAGTT    116485
perl(“-”中的另一种方法是chr(055)):

perl-wlp055e'BEGIN{}s/(\s+)\s+(\s+).*/$2\t$1/s'
这可能适合您(GNU-sed):

$ perl -lne '/^>\d+-(\d+)/ or print "$_\t$1"' file
TGAGGTAGTAGGTTGTATGGTT    672762
TGAGGTAGTAGGTTGTGTGGTT    240457
TAGCAGCACGTAAATATTGGCG    130231
TGAGGTAGTAGGTTGTATAGTT    116485
perl -wln055e's/(\S+)\s+(\S+).*/$2\t$1/s and print'
perl -wlp055e'BEGIN{<>}s/(\S+)\s+(\S+).*/$2\t$1/s'
$ awk -F- '/>/{x=$2;next} {print $0 "\t" x}' file
TGAGGTAGTAGGTTGTATGGTT  672762
TGAGGTAGTAGGTTGTGTGGTT  240457
TAGCAGCACGTAAATATTGGCG  130231
TGAGGTAGTAGGTTGTATAGTT  116485
sed -r 'N;s/^[^-]*-(.*)\n(.*)/\2\t\1/' file