我需要编写一个脚本来查看/etc/passwd 10×10,页码在下面。因此,它将显示下10行后,按下一个按钮。我应该使用什么命令?曾经试过检查锥,头,尾,命令,但没有找到解决办法。
#!/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 发布于 2019-05-29 12:07:41
每10行添加一次getline rc < "-"。若要抑制换行符,请使用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/passwdhttps://unix.stackexchange.com/questions/521680
复制相似问题