首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ubuntu -查看数据行10×10

Ubuntu -查看数据行10×10
EN

Unix & Linux用户
提问于 2019-05-29 07:29:11
回答 1查看 85关注 0票数 -2

我需要编写一个脚本来查看/etc/passwd 10×10,页码在下面。因此,它将显示下10行后,按下一个按钮。我应该使用什么命令?曾经试过检查锥,头,尾,命令,但没有找到解决办法。

代码语言:javascript
运行
复制
#!/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 
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-05-29 12:07:41

每10行添加一次getline rc < "-"。若要抑制换行符,请使用system("tput cuu1")将光标向上一行移动:

代码语言:javascript
运行
复制
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

若要添加页码,可以使用:

代码语言:javascript
运行
复制
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
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/521680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档