提取多列并在其间添加空字符
Extract multiple columns and add null character in between
我有一个格式如下的文件:
TRINITY_DN119001_c0_g1_i1 4 * 0 0 * * 0 0 GAGCCTCCCTCATGAATGTACCAGCATTTACCTCATAAAGAGCT * XO:Z:NM
TRINITY_DN119037_c0_g1_i1 4 * 0 0 * * 0 0 TAAGATTAGGTTGTATTCCAG * XO:Z:NM
TRINITY_DN119099_c0_g1_i1 4 * 0 0 * * 0 0 AGGCAGGCGCTAAACGATTTGCATTTCTCTAATGATTACGCCAG * XO:Z:NM
我正在尝试提取第 1 列和第 10 列并将其存储为以下格式(输出文件):
>TRINITY_DN119099_c0_g1_i1
GAGCCTCCCTCATGAATGTACCAGCATTTACCTCATAAAGAGCT
>TRINITY_DN119037_c0_g1_i1
TAAGATTAGGTTGTATTCCAG
>TRINITY_DN119001_c0_g1_i1
AGGCAGGCGCTAAACGATTTGCATTTCTCTAATGATTACGCCAG
我现在正在执行以下代码:
cut -d " " -f1,10 in.txt > out.txt
sed 's/^/>/' out.txt
但是,无法了解如何获得上述输出。
您可以使用 awk
:
awk '{printf ">%s\n%s\n", , }' file
>TRINITY_DN119001_c0_g1_i1
GAGCCTCCCTCATGAATGTACCAGCATTTACCTCATAAAGAGCT
>TRINITY_DN119037_c0_g1_i1
TAAGATTAGGTTGTATTCCAG
>TRINITY_DN119099_c0_g1_i1
AGGCAGGCGCTAAACGATTTGCATTTCTCTAATGATTACGCCAG
但是请注意,它是您显示的输出中的第 1 列和第 10 列,而不是第 9 列。
如果您的数据在 'd' 文件中,请尝试 gnu sed:
sed -E 's/^(TRINITY_DN\S+).*\s([ACGT]+).*/\n/' d
我有一个格式如下的文件:
TRINITY_DN119001_c0_g1_i1 4 * 0 0 * * 0 0 GAGCCTCCCTCATGAATGTACCAGCATTTACCTCATAAAGAGCT * XO:Z:NM
TRINITY_DN119037_c0_g1_i1 4 * 0 0 * * 0 0 TAAGATTAGGTTGTATTCCAG * XO:Z:NM
TRINITY_DN119099_c0_g1_i1 4 * 0 0 * * 0 0 AGGCAGGCGCTAAACGATTTGCATTTCTCTAATGATTACGCCAG * XO:Z:NM
我正在尝试提取第 1 列和第 10 列并将其存储为以下格式(输出文件):
>TRINITY_DN119099_c0_g1_i1
GAGCCTCCCTCATGAATGTACCAGCATTTACCTCATAAAGAGCT
>TRINITY_DN119037_c0_g1_i1
TAAGATTAGGTTGTATTCCAG
>TRINITY_DN119001_c0_g1_i1
AGGCAGGCGCTAAACGATTTGCATTTCTCTAATGATTACGCCAG
我现在正在执行以下代码:
cut -d " " -f1,10 in.txt > out.txt
sed 's/^/>/' out.txt
但是,无法了解如何获得上述输出。
您可以使用 awk
:
awk '{printf ">%s\n%s\n", , }' file
>TRINITY_DN119001_c0_g1_i1
GAGCCTCCCTCATGAATGTACCAGCATTTACCTCATAAAGAGCT
>TRINITY_DN119037_c0_g1_i1
TAAGATTAGGTTGTATTCCAG
>TRINITY_DN119099_c0_g1_i1
AGGCAGGCGCTAAACGATTTGCATTTCTCTAATGATTACGCCAG
但是请注意,它是您显示的输出中的第 1 列和第 10 列,而不是第 9 列。
如果您的数据在 'd' 文件中,请尝试 gnu sed:
sed -E 's/^(TRINITY_DN\S+).*\s([ACGT]+).*/\n/' d