awk、sed、shellで解決する必要のあるテキスト操作の問題があります。
私のテキストは次のようになります。
>Sample_1
100 101
aaattattacaaaaataattacaaattattacaaaaagaattattacaaaaagaattacaaaa
-1.60 .(((((((.....)))))))........................................... []
>Sample_2
1 35
aattattacaaaaagaattattacaaaaagaatta
0.00 ................................... _
>Sample_3
1 123
gctcacacctgtaatcccagcactttgggaggctgagg
-27.80 ((((.....))))......((((((.(((...))))))).)[][][[][]]
-26.40 (((((.((...(((((..((((((....))......... [[][]][]
-25.80 ((((.....)))).....((((((............... [][][][[][]]
123 145
ctgaggcaggcagatcacgaggtcacgagatcaa
-26.20 (((.....)))))) [][][[][]]
-25.90 ....((((..((....)) [][[][]]
-25.70 ..(((..((....))..(()) [[][]][[][]]
145 256
gtaatcccagcactttgggaggctgaggcaggcaga
0.00 ........................................... _
256 342
-25.00 ..((....((((.....((((((...)))....))... [[][]]
-24.00 ..((.((((.((((())... [[][][]]
-23.70 .((((((...(((((..((.. [[][]][]
したい:
- サンプル名を抽出します(
>Sample_1
); - サンプル名の後に続く数値を抽出します(0または負の値)。
- 負の値のグループ(例
-27.80;-26.40;-25.80
)から、最初に行く番号を抽出します(これが最も負の値です)。
完璧な出力は次のようになります。
>Sample_1
-1.60
>Sample_2
0.00
>Sample_3
-27.80
-26.20
0.00
-25.00
$ 1、grepping'>'、0&負の値を印刷するawkでこれを実行しようとしましたが、列をグループに分割できず、最も負の値を抽出できませんでした。
awk '{print $1}' file | egrep -i '>|0.00|-'