将行重新排列为表格格式

时间:2017-04-02 16:39:32

标签: awk sed

我想抓住“ - ”之后的部分,并将它与下面的字母字符串组合成一个tab-output。我试过像cut -d "*-" -f 2 <<< "$your_str"这样的东西,但我不知道怎么做整个洗牌。

输入:

>1-395652
TATTGCACTTGTCCCGGCCTGT
>2-369990
TATTGCACTCGTCCCGGCCTCC
>3-132234
TATTGCACTCGTCCCGGCCTC
>4-122014
TATTGCACTTGTCCCGGCCTGTAA
>5-118616

输出:

TATTGCACTTGTCCCGGCCTGT 395652
TATTGCACTCGTCCCGGCCTCC 369990

3 个答案:

答案 0 :(得分:3)

awk救援!

awk -F- '/^>/{k=$2; next} {print $0, k}' file

答案 1 :(得分:1)

使用GNU sed:

sed -nE 'N;s/.*-([0-9]+)\n(.*)/\2\t\1/p' file

输出:

TATTGCACTTGTCCCGGCCTGT  395652
TATTGCACTCGTCCCGGCCTCC  369990
TATTGCACTCGTCCCGGCCTC   132234
TATTGCACTTGTCCCGGCCTGTAA        122014

答案 2 :(得分:1)

便携式sed

sed -n 's/.*-//;x;n;G;s/\n/ /p' inputfile

输出:

TATTGCACTTGTCCCGGCCTGT 395652
TATTGCACTCGTCCCGGCCTCC 369990
TATTGCACTCGTCCCGGCCTC 132234
TATTGCACTTGTCCCGGCCTGTAA 122014