【发布时间】:2018-07-25 02:22:09
【问题描述】:
我需要弄清楚如何在 bash 中重新排序一个文本文件,该文件是由另一个脚本制作的,由许多具有特定方案的行组成。这是其中的 12 个。
>NODE_3
nucleotide_cov: 170.3683
GC_CONT: 37.00
>NODE_18
nucleotide_cov: 168.8670
GC_CONT: 37.00
>NODE_23
nucleotide_cov: 178.0648
GC_CONT: 35.00
>NODE_41
nucleotide_cov: 174.4054
GC_CONT: 36.00
需要的输出是:
GC_CONT: 37.00 nucleotide_cov: 170.3683 >NODE_3
GC_CONT: 37.00 nucleotide_cov: 168.8670 >NODE_18
GC_CONT: 35.00 nucleotide_cov: 178.0648 >NODE_23
GC_CONT: 36.00 nucleotide_cov: 174.4054 >NODE_41
每一列都被制表符分割,所以“\t”和GC_CONT需要是它们的第一个值。 首选 awk 解决方案。
编辑
我会尽量说清楚。这是使用
的输出文件awk 'NR%3{printf "%s ",$0;next;}1' input.txt
>NODE_3 nucleotide_cov: 170.3683 GC_CONT: 37.00
>NODE_18 nucleotide_cov: 168.8670 GC_CONT: 37.00
>NODE_23 nucleotide_cov: 178.0648 GC_CONT: 35.00
>NODE_41 nucleotide_cov: 174.4054 GC_CONT: 36.00
很好,但我需要格式化它们以便在每一行的开头都有“GC_CONT:”。
【问题讨论】:
-
我不明白你的意思是“每列都由制表符分隔,所以“\t”和 GC_CONT 必须是它们的第一个值。”
-
@PierreFrançois 查看问题更新