Awk 提取多列并在其中添加空字符

Awk 提取多列并在其中添加空字符,awk,sed,fasta,Awk,Sed,Fasta,我有一个以下格式的文件: 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

我有一个以下格式的文件:

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列,并将其存储为以下格式(输出文件):

我现在正在执行以下代码:

cut -d "  " -f1,10 in.txt > out.txt
sed 's/^/>/' out.txt

但是,无法获取如何获得上述输出。

您可以使用
awk

awk '{printf ">%s\n%s\n", $1, $10}' file


但是请注意,在显示的输出中,它是第1列和第10列,而不是第9列。

如果您的数据在“d”文件中,请尝试gnu sed:

 sed -E 's/^(TRINITY_DN\S+).*\s([ACGT]+).*/\1\n\2/' d

TAAGATTAGG
噩梦……哈哈哈@GillesQuenot@oguzismail获取与输出中类似的格式。
cut-f1,10 in.txt | sed的/^/>;s/\t/\n/'
应该可以,那么你是说第1列和第10列,而不是第1列和第9列,对吗?
>TRINITY_DN119001_c0_g1_i1
GAGCCTCCCTCATGAATGTACCAGCATTTACCTCATAAAGAGCT
>TRINITY_DN119037_c0_g1_i1
TAAGATTAGGTTGTATTCCAG
>TRINITY_DN119099_c0_g1_i1
AGGCAGGCGCTAAACGATTTGCATTTCTCTAATGATTACGCCAG
 sed -E 's/^(TRINITY_DN\S+).*\s([ACGT]+).*/\1\n\2/' d