Seria possível utilizar duas coisas específicas de saída?

3

Estou usando transmissão remota para ver a lista de torrents em execução.

Ao usar transmission-remote -l , os resultados são os seguintes:

ID  Done    Have  ETA     Up    Down  Ratio Status Name

1   100%    10GB  Done    0.0   0.0   0.0   Idle   Torrent

Sum: 15.91 GB    0.0     0.0

Será que eu conseguirei a porcentagem e o nome do torrent?

No momento, tenho o seguinte: transmission-remote -l | grep -o -P '.{0,3}%'

Isso retorna o 100%

    
por SchnitteKing 30.12.2016 / 20:08

2 respostas

1

Não sei como fazê-lo com o grep, mas existe uma solução simples com awk .

Para apenas o primeiro torrent na lista:

transmission-remote -l | awk '{if (NR == 3) {print $2, $9}} '

Para todos os torrents (se cada um tiver uma linha em branco antes, se não for verdade, substitua i += 2 to i++ ):

transmission-remote -l | awk '{lines[NR]=$2 " " $9} END {for (i = 3; i < NR; i += 2) print lines[i]} '

No segundo caso, colocamos linhas no array e usamos for-loop para imprimi-las quando a entrada é lida.

    
por 05.01.2017 / 00:26
0
head -n 3 | tail -n 1 | 
sed -re 's/[[:blank:]]+/\t/g' | 
cut -f 2,9

Isto irá:

  • selecione 3 registro (linha)
  • converte espaços em uma única guia (pré-processamento para corte)
  • selecione os campos 2 e 9

cut não era poderoso o suficiente sozinho, então usei a cabeça e cauda para selecionar a linha (parecia não haver nada diferente para grep on) e, em seguida, uma simples receita sed para pre-precessa pronta para cut .

    
por 31.12.2016 / 18:42