Linux awk编程作业

编写一个shell脚本awkexe.sh,其中使用awk命令将/etc/passwd的内容按照以下方式输出到文件awk.out中:

  • 首行显示列表标题:List of Users 标题后输出分割线
  • 每行只显示用户名、组ID和使用的默认shell路径,并在最上方显示字段名称,如UserName,GroupID,Shell Path,注意字段名与内容要按列对齐
  • 在列表下方输出分割线
  • 在分割线下方输出带提示的统计信息,统计每种shell路径出现的次数
#!/bin/bash

awk -F: 'BEGIN {
printf ("List of Users \n")
printf ("-----------------------------------------------------------\n")
printf ("%-20s %-15s %-20s\n", "UserName","GroupID","Shell Path")
}
{
        printf ("%-20s %-15s %-20s\n", $1, $4, $7)
        count[$7]++     
}
END {
printf ("-----------------------------------------------------------\n")
printf ("Count Results\n")
for (x in count)
        printf ("%-20s %-5d\n" , x, count[x])
}' /etc/passwd > awk.out

注意:

  • 命令要写在一行
  • awk的语法和shell自带的语法不一样

猜你喜欢

转载自blog.csdn.net/DwenKing/article/details/109688722
今日推荐