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
I want to extract lines with chr6.fa
from the FC305JN_s_1_eland_result.txt file. Then, I want to extract only columns 1, 2, 7, 8, and 9 from this sub-file.
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.
Small sample of the FC305JN_s_1_eland_result.txt
file:
>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
Current output outfile.txt (Example):
>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
Desired output (Example):
>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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
完整的 awk:
输出:
In full awk:
Output:
简化代码(使用从 使用 grep 提取列借用的代码)
产生输出:< /强>
Simplifying your code (with code borrowed from Extract column using grep)
produces output: