실행 중인 토렌트 목록을 보기 위해 Transmission-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}%'
이 반환됩니다100%
답변1
grep으로 이 작업을 수행하는 방법을 잘 모르겠지만 간단한 해결책이 있습니다 awk
.
목록의 첫 번째 토렌트에서만 작동합니다.
transmission-remote -l | awk '{if (NR == 3) {print $2, $9}} '
모든 시드에 대해(각 시드 앞에 빈 줄이 있으면 true가 아닌 경우 i += 2
교체 i++
):
transmission-remote -l | awk '{lines[NR]=$2 " " $9} END {for (i = 3; i < NR; i += 2) print lines[i]} '
두 번째 경우에는 행을 배열에 넣고 입력을 읽는 동안 for 루프를 사용하여 인쇄합니다.
답변2
head -n 3 | tail -n 1 |
sed -re 's/[[:blank:]]+/\t/g' |
cut -f 2,9
이는 다음을 수행합니다.
- 3개의 레코드(행) 선택
- 공백을 단일 탭으로 변환(전처리 잘라내기)
- 필드 2와 9를 선택하세요.
cut
그 자체로는 충분히 강력하지 않기 때문에 머리와 꼬리를 사용하여 스레드(특별한 것은 아닌 것 같음 grep
)를 선택한 다음 sed
준비를 전처리하는 간단한 방법을 사용합니다 cut
.