2015-07-25 2 views
3

Если у торрента есть проблема с удалением данных на жестком диске в столбце id, у него есть номер типа «ID *».xargs -I%/path /%

Я хочу отфильтровать идентификаторы торрентов в списке торрентов, которые имеют символ «*» в конце идентификатора (LIKE ID * или 1 *, 2 *, 25 *) и удаляют их из списка торрентов.

Полная команда:

/usr/bin/transmission-remote 127.0.0.1:9091 --auth ts:ts -l | grep "*" | awk '{print $1}' \ 
| xargs -n 1 -I % /usr/bin/transmission-remote 127.0.0.1:9091 --auth ts:ts -t% -r 

Я ожидаемый результат:

/usr/bin/transmission-remote 127.0.0.1:9091 --auth ts:ts -t ID* -r 

Но что-то пошло не так. передачи сказали, что:

127.0.0.1:9091/transmission/rpc/ responded: "success" 

Но поток не удалять из списка.

Как я могу видеть конечный результат для сравнения с ожидаемым?

+0

Попробуйте помещать 'echo' там? – melpomene

+2

Попробуйте запустить исходную команду → grep → awk c hain, не прокладывая его в финальные харги. Когда я пытаюсь, он не дает выхода. (Вероятно, потому что grep плохой, «\ *» сам по себе бессмыслен и, возможно, ошибка). Я заменил grep * и * awk одним «awk» $ 1 ~/^ [0-9] + $/{print $ 1} '', который, кажется, дает лучшие результаты, но я не знаю, результаты, которые вы хотите. (Он просто печатает все идентификаторы) –

+0

Я пробовал это. И я увидел следующее: 21 * 22 * ​​ Потому что с этими торрентами возникают проблемы. Я упомянул, что если торрент имеет проблему в столбце id, он имеет номер, например «XX *». Проблема, как удаленные данные на жестком диске. –

ответ

0

Чтобы получить идентификаторы:

transmission-remote -l | grep '*' | awk '{print $1}' | grep -o '[0-9]*' 

Полная команда:

transmission-remote -l | grep '*' | awk '{print $1}' | grep -o '[0-9]*' | tr "\\n" "," | xargs -n 1 -I \% transmission-remote -t \% -r 

Done и сделано (: С дополнительным улучшением использования "TR", чтобы объединить все потоковые идентификаторы и избежать работает все в цикле (Transmission-RPC чрезвычайно ресурсоемкий, чтобы вызывать многократно)

Смежные вопросы