![우분투 - 데이터 라인 10 x 10 보기](https://rvso.com/image/154448/%EC%9A%B0%EB%B6%84%ED%88%AC%20-%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EB%9D%BC%EC%9D%B8%2010%20x%2010%20%EB%B3%B4%EA%B8%B0.png)
페이지 번호가 아래에 있는 /etc/passwd를 10x10으로 보려면 스크립트를 작성해야 합니다. 따라서 버튼을 누르면 다음 10줄이 표시됩니다. 어떤 명령을 사용해야 합니까? awk, head,tail, command를 확인하려고 시도했지만 해결책을 찾지 못했습니다.
#!/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