Можно ли вывести две конкретные вещи вывода?

Я использую remote-remote для просмотра списка текущих торрентов.

При использовании transmission-remote -l получается следующее:

 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 

Смогу ли я обработать процент и имя торрента?

На данный момент у меня есть следующее: transmission-remote -l | grep -o -P '.{0,3}%' transmission-remote -l | grep -o -P '.{0,3}%'

Это возвращает 100%

  • Почему возникает ошибка при получении результата grepping?
  • Распечатайте строку в stdout, которая соответствует выражению, если вывод содержит другое выражение
  • Как найти несколько непоследовательных букв в имени файла
  • Совместить данные из двух разных файлов
  • Как удалить несколько строк в каждом вхождении в файл?
  • Как передать результаты команды date в grep для фильтрации результатов другой команды
  • Почему вывод для `grep -o` совпадает с LC_ALL = C или без него?
  • Как написать скрипт bash, который отправляет графическое уведомление всем X-дисплеям пользователей?
  • 2 Solutions collect form web for “Можно ли вывести две конкретные вещи вывода?”

    Не знаю, как это сделать с помощью grep, но есть простое решение с awk .

    Только для первого торрента в списке:

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

    Для всех торрентов (если каждый из них имеет пустую строку раньше, если это неверно, замените i += 2 на i++ ):

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

    Во втором случае мы помещаем строки в массив и используем for-loop для их печати при чтении ввода.

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

    Это будет:

    • выберите 3 записи (строка)
    • конвертировать пробелы в одну вкладку (предварительная обработка для разрезания)
    • выберите поля 2 и 9

    cut был недостаточно мощным, поэтому я использовал голову и хвост, чтобы выбрать линию (казалось, не было ничего особенного для grep ), а затем простой рецепт sed чтобы предварительно прецессировать готовый к cut .

    Linux и Unix - лучшая ОС в мире.