Ubuntu - 데이터 행을 10x10으로 보기 [닫기]

Ubuntu - 데이터 행을 10x10으로 보기 [닫기]

/etc/passwd 10 x 10의 페이지 번호를 보려면 스크립트를 작성해야 합니다. 따라서 버튼을 누르면 다음 10줄이 표시됩니다. 어떤 명령을 사용해야 합니까? awk, head, tail, 명령을 확인했지만 해결책을 찾지 못했습니다.

#!/bin/bash 

awk -F":" 'BEGIN { print "--------------------------------------------------"
                    printf "%-20s %-10s %-3s\n","USERNAME","GUID","DIRECTORY" 
                    print "--------------------------------------------------" 
                 } 
           NR==1, NR==10 {printf "%-20s %-10s %-3s\n", $1, $4, $7} ' /etc/passwd 

답변1

getline rc < "-"10번째 행마다 추가됩니다. 개행을 억제하려면 다음 명령을 사용하여 커서를 한 줄 위로 이동합니다 system("tput cuu1").

awk -F":" '
    BEGIN { print "--------------------------------------------------"
            printf "%-20s %-10s %-3s\n","USERNAME","GUID","DIRECTORY" 
            print "--------------------------------------------------" }
    !(NR%10) { getline rc < "-"; system("tput cuu1") }
    { printf "%-20s %-10s %-3s\n", $1, $4, $7 }
' /etc/passwd

페이지 번호를 추가하려면 다음을 사용할 수 있습니다.

awk -F":" -v TNR=$(wc -l < /etc/passwd) '
    BEGIN { NUM_PAGES=TNR/10+1
            print "--------------------------------------------------"
            printf "%-20s %-10s %-3s\n","USERNAME","GUID","DIRECTORY" 
            print "--------------------------------------------------" }

    !(NR%10) { PAGE++
               printf "--- Page %d of %d ---",PAGE,NUM_PAGES
               getline rc < "-"; system("tput cuu1") }

    { printf "%-20s %-10s %-3s\n", $1, $4, $7 }
' /etc/passwd

관련 정보