Ubuntu:如果包含特定字符串,我如何从制表符分隔的文件中只提取特定的列



我想从FC305JN_s_1_eland_result.txt文件中提取具有chr6.fa的行。然后,我只想从这个子文件中提取第1、2、7、8和9列。

grep -E "chr6.fa" FC305JN_s_1_eland_result.txt > out.txt
awk -F, '{OFS=",";print $1, $2, $7, $8, $9}' out.txt > outfile.txt
My out.txt is exactly the same as outfile.txt.

FC305JN_s_1_eland_result.txt文件的小样本:

>FC305JN_20080525:1:15:1412:166 GTGAATCCTTATTCCGATATATATNNNN    U0  1   0   0   chrX.fa 45974622    R   ..
>FC305JN_20080525:1:15:944:72   GATGACTTCCTTAATTTTCTTTATNNNN    U0  1   0   0   chr6.fa 7200804 R   ..
>FC305JN_20080525:1:15:1049:473 GAATGGCAACACAAACAGGGCTGANNNN    R2  0   0   4
>FC305JN_20080525:1:15:1196:1959    GGGAGAAGCCTCCCCGCCTCGGCCNNNN    U2  0   0   1   chr17.fa    38386704    F   ..  17A 23T
>FC305JN_20080525:1:15:1034:505 GAAAATGTTTCAAATCAATTTCTANNNN    U0  1   0   0   chr2.fa 183305566   R   ..
>FC305JN_20080525:1:15:983:126  GGATAGAGAGTTTGCACTGAGTTGNNNN    U0  1   0   0   chrX.fa 92367529    F   ..
>FC305JN_20080525:1:15:1799:100 TTCAGCTTATTGATAAAGAAGCACNNNN    U0  1   0   0   chr6.fa 20979453    R   ..
>FC305JN_20080525:1:15:743:1028 GAATGGAATGGAATGGAAAGAAACNNNN    R1  0   33  255
>FC305JN_20080525:1:15:771:1076 GAGTTCACTAAACAAAAGAGTGTCNNNN    U2  0   0   1   chr6.fa 136877852   R   ..  7A  13G

当前输出outfile.txt(示例(:

>FC305JN_20080525:1:15:944:72   GATGACTTCCTTAATTTTCTTTATNNNN    U0  1   0   0   chr6.fa 7200804 R   ..
>FC305JN_20080525:1:15:1799:100 TTCAGCTTATTGATAAAGAAGCACNNNN    U0  1   0   0   chr6.fa 20979453    R   ..
>FC305JN_20080525:1:15:771:1076 GAGTTCACTAAACAAAAGAGTGTCNNNN    U2  0   0   1   chr6.fa 136877852   R   ..  7A  13G

期望输出(示例(:

>FC305JN_20080525:1:15:944:72   GATGACTTCCTTAATTTTCTTTATNNNN    chr6.fa 7200804 R
>FC305JN_20080525:1:15:1799:100 TTCAGCTTATTGATAAAGAAGCACNNNN    chr6.fa 20979453    R
>FC305JN_20080525:1:15:771:1076 GAGTTCACTAAACAAAAGAGTGTCNNNN    chr6.fa 136877852   R

完整awk:

$ awk 'BEGIN {
FS=OFS="t"               # set correct delimiters
}
$7~/chr6.fa/ {               # replaces the grep part
print $1, $2, $7, $8, $9  # output
}'  file                      # your file goes here

输出:

>FC305JN_20080525:1:15:944:72   GATGACTTCCTTAATTTTCTTTATNNNN    chr6.fa 7200804 R
>FC305JN_20080525:1:15:1799:100 TTCAGCTTATTGATAAAGAAGCACNNNN    chr6.fa 20979453        R
>FC305JN_20080525:1:15:771:1076 GAGTTCACTAAACAAAAGAGTGTCNNNN    chr6.fa 136877852       R

简化代码(使用grep从Extract列借用的代码(

grep -E "chr6.fa" FC305JN_s_1_eland_result.txt > out.txt
awk '{print $1, "t", $2, "t", $7, "t", $8, "t", $9}' out.txt > outfile.txt

产生输出:

FC305JN_20080525:1:15:944:72     GATGACTTCCTTAATTTTCTTTATNNNN    chr6.fa     7200804     R
FC305JN_20080525:1:15:1799:100   TTCAGCTTATTGATAAAGAAGCACNNNN    chr6.fa     20979453    R
FC305JN_20080525:1:15:771:1076   GAGTTCACTAAACAAAAGAGTGTCNNNN    chr6.fa     136877852   R

最新更新